import { GuardOptions, GuardEventsKebabToCamelType, StartWithRedirectOptions, AuthenticationClient, JwtTokenStatus, User, Lang, LogoutParams } from './types';
import '@authing/react-ui-components/lib/index.min.css';
export * from './types';
export declare class Guard {
    options: GuardOptions;
    private visible;
    private then;
    private publicConfig?;
    constructor(options: GuardOptions);
    private adaptOptions;
    private getPublicConfig;
    getAuthClient(): Promise<AuthenticationClient>;
    static getGuardContainer(selector?: string | HTMLElement): Element | null;
    private eventListeners;
    /**
     * 启动嵌入模式
     * @param el String
     * @returns Promise
     */
    start(el?: string): Promise<User>;
    startRegister(): void;
    checkLoginStatus(): Promise<JwtTokenStatus | undefined>;
    changeLang(lang: Lang): void;
    changeContentCSS(contentCSS: string): void;
    /**
     * 启动跳转模式
     */
    startWithRedirect(options?: StartWithRedirectOptions): Promise<void>;
    handleRedirectCallback(): Promise<void>;
    private getAccessTokenByCode;
    private getCodeAndCodeChallenge;
    private setStorageCache;
    private parseUrlQuery;
    /**
     * 获取当前用户信息
     */
    trackSession(): Promise<User | null>;
    logout(params?: LogoutParams): Promise<void>;
    render(cb?: () => void): Promise<void>;
    on<T extends keyof GuardEventsKebabToCamelType>(evt: T, handler: Exclude<GuardEventsKebabToCamelType[T], undefined>): void;
    show(): void;
    hide(): void;
    unmount(): void;
    getCurrentView(): {
        currentModule: string | undefined;
        currentTab: string | undefined;
    };
    changeView(currentView: string): Promise<void>;
    private getAgreementsContext;
    checkAllAgreements(): void;
    unCheckAllAgreements(): void;
}
