import { VoiceCallRecordingContract, CallingCallRecordEventParams, CallingCallRecordPauseMethodParams } from '@signalwire/core';
import { ListenSubscriber } from '../../ListenSubscriber';
import { CallRecordingEvents, CallRecordingListeners, CallRecordingListenersEventsMapping } from '../../types';
import { Call } from '../Call';
export interface CallRecordingOptions {
    call: Call;
    payload: CallingCallRecordEventParams;
    listeners?: CallRecordingListeners;
}
export declare class CallRecording extends ListenSubscriber<CallRecordingListeners, CallRecordingEvents> implements VoiceCallRecordingContract {
    _paused: boolean;
    private _payload;
    protected _eventMap: CallRecordingListenersEventsMapping;
    constructor(options: CallRecordingOptions);
    get id(): string;
    get callId(): string;
    get nodeId(): string;
    get controlId(): string;
    get state(): import("@signalwire/core").CallingCallRecordState;
    get url(): string | undefined;
    get size(): number | undefined;
    get duration(): number | undefined;
    get record(): any;
    get hasEnded(): boolean;
    /** @internal */
    setPayload(payload: CallingCallRecordEventParams): void;
    pause(params?: CallingCallRecordPauseMethodParams): Promise<this>;
    resume(): Promise<this>;
    stop(): Promise<this>;
    ended(): Promise<this>;
}
//# sourceMappingURL=CallRecording.d.ts.map