import { User, LoginResult } from './types';
import { ModuleWrapper, Result } from '@terra-js/common';
import { BaseModule } from '../BaseModule';
export default class AuthKitModule implements BaseModule {
    wrappedModule: ModuleWrapper;
    accessToken?: string;
    user?: User;
    constructor();
    isLoggedIn(): boolean;
    login(): Promise<Result<LoginResult>>;
    logout(): void;
    /**
     * Returns the access token of current user. Returns null if no user has logged in.
     *
     * Please call `getAccessTokenAsync` before.
     */
    getAccessToken(): string;
    getAccessTokenAsync(): Promise<string>;
    /**
     * Refreshes the access token. Returns an result with access token if success, otherwise returns an error result.
     */
    refreshAccessToken(): Promise<Result<string>>;
    /**
     * Returns the current user. Returns null if no user has logged in.
     *
     * Please call `getFullUserInfo` before.
     */
    getUserInfo(): User;
    getFullUserInfo(): Promise<User>;
}
