import * as schedule from 'node-schedule'; import { MiniappType } from '../types'; import { AccessTokenAccessor, AccessTokenRegister, AuthorizerAccessTokenAccessor, AuthorizerAccessTokenRegister, AuthorizerAppId, CommonOptions, TicketAccessor, TicketRegister } from '../types/definition'; declare type ProxyOptions = { method?: string; requireAccessToken?: boolean; requireAccessTokenName?: string; withoutAuthorizerAccessToken?: boolean; authorizerAppId?: string; requireTPUniqueId?: boolean; postTPUniqueId?: boolean; }; declare type ClientProxyOptions = Omit; export default abstract class Base { abstract miniappType: MiniappType; abstract accessTokenRefreshCron: string; abstract refreshAccessToken(ticket: string): Promise; abstract getPreauthCode(): Promise; abstract getAuthorizationInfo(authorizationCode: string): Promise; abstract refreshAuthorizerAccessToken(refreshToken: string, authorizerAppId?: AuthorizerAppId): Promise<{ authorizerAccessToken: string; expiresIn: number; refreshToken: string; } | undefined>; ticketRegister: TicketRegister; ticketAccessor: TicketAccessor; accessTokenRegister: AccessTokenRegister; accessTokenAccessor: AccessTokenAccessor; authorizerAccessTokenRegister: AuthorizerAccessTokenRegister; authorizerAccessTokenAccessor: AuthorizerAccessTokenAccessor; accessTokenRefreshScheduleJob: schedule.Job; logger: any; constructor(options: CommonOptions); private currying; private loggerGenerater; startAccessTokenRefreshSchedule(): Promise; stopAccessTokenRefreshSchedule(): void; protected request(url: string, { method, contentType, query, body }: { method?: string; contentType?: string; query?: any; body?: any; }): Promise; protected parseWithOptions(options: ProxyOptions, query: any, body: any): Promise<{ query: any; body: any; } | undefined>; getAuthorizerAccessToken(authorizerAppId: AuthorizerAppId): Promise; proxyBase(url: string, options: ProxyOptions, query?: any, body?: any): Promise; proxy(url: string, options: ClientProxyOptions, query?: any, body?: any): Promise; } export {};