import { HttpClient } from './http-client';
export declare class UniFiAuth {
    private httpClient;
    private site;
    private isLoggedIn;
    private credentials?;
    private sessionStorage;
    private sessionExpiresAt?;
    private twoFactorRequired;
    private twoFactorSessionId?;
    constructor(httpClient: HttpClient, site?: string);
    login(username: string, password: string, twoFactorCode?: string): Promise<boolean>;
    logout(): Promise<boolean>;
    isAuthenticated(): boolean;
    getSite(): string;
    setSite(site: string): void;
    validateSession(): Promise<boolean>;
    refreshSession(): Promise<boolean>;
    canReuseCredentials(): boolean;
    saveSession(): void;
    restoreSession(): boolean;
    setSessionExpiration(expiryMs: number): void;
    isSessionExpired(): boolean;
    isTwoFactorRequired(): boolean;
    submitTwoFactorCode(code: string): Promise<boolean>;
}
