import { BaseComponent } from '../BaseComponent';
import { BaseComponentOptionsWithPayload } from '../utils/interfaces';
import type { VideoStreamContract, VideoStreamEventNames, VideoStreamEventParams, VideoStreamMethods } from '../types/videoStream';
/**
 * Represents a specific Stream of a room session.
 */
export interface RoomSessionStream extends VideoStreamContract {
    setPayload(payload: VideoStreamEventParams): void;
}
export type RoomSessionStreamEventsHandlerMapping = Record<VideoStreamEventNames, (stream: RoomSessionStream) => void>;
export interface RoomSessionStreamOptions extends BaseComponentOptionsWithPayload<VideoStreamEventParams> {
}
export declare class RoomSessionStreamAPI extends BaseComponent<RoomSessionStreamEventsHandlerMapping> implements VideoStreamMethods {
    private _payload;
    constructor(options: RoomSessionStreamOptions);
    get id(): string;
    get roomId(): string;
    get roomSessionId(): string;
    get state(): "streaming" | "completed";
    get duration(): number | undefined;
    get url(): string | undefined;
    get startedAt(): Date | undefined;
    get endedAt(): Date | undefined;
    /** @internal */
    protected setPayload(payload: VideoStreamEventParams): void;
    stop(): Promise<void>;
}
export declare const createRoomSessionStreamObject: (params: RoomSessionStreamOptions) => RoomSessionStream;
//# sourceMappingURL=RoomSessionStream.d.ts.map