import { Promisify } from '@signalwire/core';
import { RoomSession } from '../RoomSession';
import { RoomSessionRecording } from './RoomSessionRecording';
import { RealTimeRoomRecordingListeners } from '../../types';
export interface RoomSessionRecordingEnded {
    id: string;
    roomId: string;
    roomSessionId: string;
    state: RoomSessionRecording['state'];
    duration?: number;
    startedAt?: Date;
    endedAt?: Date;
}
export interface RoomSessionRecordingPromise extends Promise<RoomSessionRecordingEnded>, Promisify<RoomSessionRecordingEnded> {
    onStarted: () => Promise<RoomSessionRecording>;
    onEnded: () => Promise<RoomSessionRecordingEnded>;
    listen: (listeners: RealTimeRoomRecordingListeners) => Promise<() => Promise<void>>;
    pause: () => Promise<void>;
    resume: () => Promise<void>;
    stop: () => Promise<void>;
}
export declare const getters: string[];
export declare const methods: string[];
export declare function decorateRecordingPromise(this: RoomSession, innerPromise: Promise<RoomSessionRecording>): RoomSessionRecordingPromise;
//# sourceMappingURL=decorateRecordingPromise.d.ts.map