type TextServeMessageOption = { openId: string; type: 'text'; content: string; }; type NewsServeMessageOption = { openId: string; type: 'news'; title: string; description?: string; url: string; picurl?: string; }; type MpServeMessageOption = { openId: string; type: 'mp'; data: { title: string; appId: string; pagepath: string; thumbnailId: string; }; }; type ServeMessageOption = TextServeMessageOption | NewsServeMessageOption | MpServeMessageOption; export declare class WechatPublicInstance { appId: string; appSecret?: string; private accessToken?; private refreshAccessTokenHandler?; private externalRefreshFn?; constructor(appId: string, appSecret?: string, accessToken?: string, externalRefreshFn?: (appId: string) => Promise); private getAccessToken; private access; code2Session(code: string): Promise<{ accessToken: string; openId: string; unionId: string; scope: string; refreshToken: string; isSnapshotUser: boolean; atExpiredAt: number; rtExpiredAt: number; }>; refreshUserAccessToken(refreshToken: string): Promise<{ accessToken: string; refreshToken: string; atExpiredAt: number; scope: string; }>; getUserInfo(accessToken: string, openId: string): Promise<{ nickname: string; gender: string | undefined; avatar: string; }>; getTags(): Promise; getCurrentMenu(): Promise; getMenu(): Promise; createMenu(menuConfig: any): Promise; createConditionalMenu(menuConfig: any): Promise; deleteConditionalMenu(menuid: number): Promise; private refreshAccessToken; decryptData(sessionKey: string, encryptedData: string, iv: string, signature: string): any; getQrCode(options: { sceneId?: number; sceneStr?: string; expireSeconds?: number; isPermanent?: boolean; }): Promise<{ ticket: any; url: any; expireSeconds: any; }>; sendTemplateMessage(options: { openId: string; templateId: string; url?: string; data: Object; miniProgram?: { appid: string; pagepath: string; }; clientMsgId?: string; }): Promise; sendServeMessage(options: ServeMessageOption): Promise; batchGetArticle(options: { offset?: number; count: number; noContent?: 0 | 1; }): Promise; getArticle(options: { article_id: string; }): Promise; createMaterial(options: { type: 'image' | 'voice' | 'video' | 'thumb'; media: FormData; description?: FormData; }): Promise; batchGetMaterialList(options: { type: 'image' | 'video' | 'voice' | 'news'; offset?: number; count: number; }): Promise; getMaterial(options: { type: 'image' | 'video' | 'voice' | 'news'; media_id: string; }): Promise; getTicket(): Promise; private randomString; signatureJsSDK(options: { url: string; }): Promise<{ signature: string; noncestr: string; timestamp: number; appId: string; }>; } export {};