import { TlReaderMap, TlBinaryReader } from '@mtcute/tl-runtime';
import { default as Long } from 'long';
import { tl } from '../tl/index.js';
import { ICryptoProvider, Logger } from '../utils/index.js';
export declare class AuthKey {
    readonly _crypto: ICryptoProvider;
    readonly log: Logger;
    readonly _readerMap: TlReaderMap;
    ready: boolean;
    key: Uint8Array;
    id: Uint8Array;
    clientSalt: Uint8Array;
    serverSalt: Uint8Array;
    constructor(_crypto: ICryptoProvider, log: Logger, _readerMap: TlReaderMap);
    match(keyId: Uint8Array): boolean;
    setup(authKey?: Uint8Array | null): void;
    encryptMessage(message: Uint8Array, serverSalt: Long, sessionId: Long): Uint8Array;
    decryptMessage(data: Uint8Array, sessionId: Long, callback: (msgId: tl.Long, seqNo: number, data: TlBinaryReader) => void): void;
    copyFrom(authKey: AuthKey): void;
    reset(): void;
}
