import { ClientSample as InputClientSample } from "./InputSamples";
import { ClientSample as OutputClientSample } from './OutputSamples';
import { AttachmentsEncoderFactory, ClientSampleEncoderSettings } from "./utils";
import { ClientEventEncoder } from "./ClientEventEncoder";
import { ClientMetaDataEncoder } from "./ClientMetaDataEncoder";
import { ExtensionStatsEncoder } from "./ExtensionStatsEncoder";
import { ClientIssueEncoder } from "./ClientIssueEncoder";
export declare class ClientSampleEncoder {
    readonly settings: ClientSampleEncoderSettings;
    readonly attachmentEncoderFactory: AttachmentsEncoderFactory;
    clientEventEncoder: ClientEventEncoder;
    clientIssueEncoder: ClientIssueEncoder;
    clientMetaDataEncoder: ClientMetaDataEncoder;
    extensionStatsEncoder: ExtensionStatsEncoder;
    private readonly _clientId;
    private readonly _callIdEncoder;
    private readonly _timestampEncoder;
    private _attachmentEncoder;
    private _scoreEncoder;
    private _scoreReasonsEncoder;
    private _visited;
    private _peerConnectionSampleEncoders;
    constructor(clientId: string, settings?: Partial<ClientSampleEncoderSettings>);
    get visited(): boolean;
    encodeToBytes(clientSample: InputClientSample): Uint8Array;
    encodeToBase64(clientSample: InputClientSample): string;
    encodeToProtobufSamples(clientSample: InputClientSample): OutputClientSample;
    reset(): void;
    private _encodePeerConnectionSample;
    private _checkVisitsAndClean;
}
//# sourceMappingURL=ClientSampleEncoder.d.ts.map