import { Promisify } from '@signalwire/core';
import { RoomSession } from '../RoomSession';
import { RoomSessionPlayback } from './RoomSessionPlayback';
import { RealTimeRoomPlaybackListeners } from '../../types';
export interface RoomSessionPlaybackEnded {
    id: string;
    roomId: string;
    roomSessionId: string;
    url: string;
    state: RoomSessionPlayback['state'];
    volume: number;
    startedAt?: Date;
    endedAt?: Date;
    position: number;
    seekable: boolean;
}
export interface RoomSessionPlaybackPromise extends Promise<RoomSessionPlaybackEnded>, Promisify<RoomSessionPlaybackEnded> {
    onStarted: () => Promise<RoomSessionPlayback>;
    onEnded: () => Promise<RoomSessionPlaybackEnded>;
    listen: (listeners: RealTimeRoomPlaybackListeners) => Promise<() => Promise<void>>;
    pause: () => Promise<void>;
    resume: () => Promise<void>;
    stop: () => Promise<void>;
    setVolume: (volume: number) => Promise<void>;
    seek: (timecode: number) => Promise<void>;
    forward: (offset: number) => Promise<void>;
    rewind: (offset: number) => Promise<void>;
}
export declare const getters: string[];
export declare const methods: string[];
export declare function decoratePlaybackPromise(this: RoomSession, innerPromise: Promise<RoomSessionPlayback>): RoomSessionPlaybackPromise;
//# sourceMappingURL=decoratePlaybackPromise.d.ts.map