import { ISyncWritable, Bytes } from '@fuman/io';
import { ICryptoProvider, Logger } from '../../utils/index.js';
import { IPacketCodec } from './abstract.js';
export interface MtProxyInfo {
    dcId: number;
    secret: Uint8Array;
    test: boolean;
    media: boolean;
}
export declare class ObfuscatedPacketCodec implements IPacketCodec {
    private _encryptor?;
    private _decryptor?;
    private _crypto;
    private _inner;
    private _proxy?;
    setup(crypto: ICryptoProvider, log: Logger): void;
    constructor(inner: IPacketCodec, proxy?: MtProxyInfo);
    tag(): Promise<Uint8Array>;
    encode(packet: Uint8Array, into: ISyncWritable): Promise<void>;
    private _decodeBuf;
    decode(reader: Bytes, eof: boolean): Promise<Uint8Array | null>;
    reset(): void;
}
