export declare type UserDataType = { [key: string]: any; exp: number; }; export declare type CognitoObserverInitType = { clientId: string; poolDomain: string; redirectUrl: string; region: string; userPoolId: string; }; declare class CognitoObserver { isValid: boolean; private clientId; private redirectUrl; private region; private userPoolId; private cognitoPoolDomain; private accessToken; private idToken; private refreshToken; private oldAccessToken; private debugMode; private userData; private subscribers; constructor(properties: CognitoObserverInitType); private logger; private getInterval; private notifySubscribers; /** * Starts CognitoObserver setup. If code provided checks if can fetch new tokens. * @constructor * @param {string=} code - cognito response code. */ init: (code?: string) => Promise; getCognitoPublicKeys: () => Promise<[Record] | { status: boolean; }>; fetchCognitoTokens: (code: string) => Promise; refreshTokens: () => Promise; verifyToken: (token: string, type: 'id' | 'access') => Promise<{ isValid: boolean; userData: UserDataType; }>; saveTokensToLocal: () => void; loadLocalTokens: () => boolean; private monitorTokenStatus; getAccessToken: () => string | null; isActive: () => boolean; getIdToken: () => string | null; getRefreshToken: () => string | null; getUserPoolDomain: () => string; getUserPoolId: () => string; getClientId: () => string; getUserData: () => UserDataType; onTokenUpdate: (callback: (isValid: boolean) => void, key: string) => void; clearTokens: () => void; } /** * Creates a singleton CognitoObserver object * @constructor */ export declare const CognitoAuthObserver: (properties: CognitoObserverInitType) => CognitoObserver; export {};