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