import { TapoCredentials, TapoApiRequest } from '../types'; export interface KlapSession { authenticated: boolean; timeout: number; deviceIp: string; sessionCookie: string; terminalUUID: string; key: Buffer; iv: Buffer; sig: Buffer; seq: Buffer; version: 'v1' | 'v2'; } export declare class KlapAuth { private deviceIp; private credentials; private session?; constructor(ip: string, credentials: TapoCredentials); authenticate(): Promise; private authenticateV2; private authenticateV1; private shouldTryV1; secureRequest(request: TapoApiRequest): Promise; isAuthenticated(): boolean; clearSession(): void; getSessionVersion(): 'v1' | 'v2' | null; private encrypt; private decrypt; private encryptAndSign; private handshake1AuthHash; private handshake2AuthHash; private generateAuthHash; private deriveKey; private deriveIv; private deriveSig; private deriveSeqFromIv; private ivWithSeq; private incrementSeq; private sha256; private sha1; private compare; }