export type StreamFormat = 'webrtc' | 'hls' | 'mjpeg' | 'rtsp';
export interface StreamingSource {
    readonly url: string;
    readonly protocol: 'rtsp' | 'http' | 'rtmp';
    readonly deviceId: string;
    readonly providerId: string;
    readonly label?: string;
}
export interface StreamInfo {
    readonly streamId: string;
    readonly source: StreamingSource;
    readonly formats: StreamFormat[];
}
export interface StreamStatus {
    readonly active: boolean;
    readonly viewers: number;
    readonly startedAt?: number;
}
export interface IStreamingEngine {
    initialize(config: Record<string, unknown>): Promise<void>;
    shutdown(): Promise<void>;
    registerStream(streamId: string, source: StreamingSource): Promise<void>;
    unregisterStream(streamId: string): Promise<void>;
    getStreamUrl(streamId: string, format: StreamFormat): string | null;
    proxyWhepOffer(streamId: string, sdpOffer: string): Promise<string>;
    listStreams(): StreamInfo[];
    getStreamStatus(streamId: string): StreamStatus | null;
}
//# sourceMappingURL=streaming.d.ts.map