import { BaseComponent } from '../BaseComponent';
import { BaseComponentOptionsWithPayload } from '../utils/interfaces';
import type { VideoRecordingContract, VideoRecordingEventNames, VideoRecordingEventParams, VideoRecordingMethods } from '../types/videoRecording';
/**
 * Represents a specific recording of a room session.
 */
export interface RoomSessionRecording extends VideoRecordingContract {
    setPayload(payload: VideoRecordingEventParams): void;
}
export type RoomSessionRecordingEventsHandlerMapping = Record<VideoRecordingEventNames, (recording: RoomSessionRecording) => void>;
export interface RoomSessionRecordingOptions extends BaseComponentOptionsWithPayload<VideoRecordingEventParams> {
}
export declare class RoomSessionRecordingAPI extends BaseComponent<RoomSessionRecordingEventsHandlerMapping> implements VideoRecordingMethods {
    private _payload;
    constructor(options: RoomSessionRecordingOptions);
    get id(): string;
    get roomId(): string;
    get roomSessionId(): string;
    get state(): "recording" | "paused" | "completed";
    get duration(): number | undefined;
    get startedAt(): Date | undefined;
    get endedAt(): Date | undefined;
    /** @internal */
    protected setPayload(payload: VideoRecordingEventParams): void;
    pause(): Promise<void>;
    resume(): Promise<void>;
    stop(): Promise<void>;
}
export declare const createRoomSessionRecordingObject: (params: RoomSessionRecordingOptions) => RoomSessionRecording;
//# sourceMappingURL=RoomSessionRecording.d.ts.map