import type { EncodedPacket } from './stream-broker.js';
export interface RegisteredStream {
    readonly streamId: string;
    readonly label: string;
    readonly codec: string;
    readonly type: 'video' | 'audio';
    readonly sourceUrl?: string;
}
export interface RestreamerExposedResource {
    readonly type: string;
    readonly format: string;
    readonly value: string;
    readonly metadata?: Readonly<Record<string, unknown>>;
}
export interface IRestreamer {
    readonly id: string;
    readonly name: string;
    registerDevice(deviceId: number, streams: readonly RegisteredStream[]): Promise<void>;
    pushPacket(streamId: string, packet: EncodedPacket): void;
    unregisterDevice(deviceId: number): Promise<void>;
    getExposedResources(deviceId: number): readonly RestreamerExposedResource[];
    proxyWhepOffer?(streamId: string, sdpOffer: string): Promise<string>;
}
//# sourceMappingURL=restreamer.d.ts.map