import { TapoCredentials, TapoApiRequest } from '../types';
export interface AuthSession {
    sessionKey: string;
    sessionId: string;
    token: string;
}
export declare class TapoAuth {
    private httpClient;
    private credentials;
    private session?;
    constructor(ip: string, credentials: TapoCredentials);
    authenticate(): Promise<AuthSession>;
    private performHandshake;
    private performLogin;
    secureRequest<T>(request: TapoApiRequest): Promise<T>;
    private encryptRequest;
    getSession(): AuthSession | undefined;
    isAuthenticated(): boolean;
    clearSession(): void;
}
