import { type VideoRole, type VideoSendSettings, type VideoWanted } from "./videoDemand.js"; /** * The one writer of the camera's and the share's encodings. Once a second it merges the * embedder's settings, what viewers want and the send estimate, and writes both senders. */ export declare function createVideoSendController(getPc: () => RTCPeerConnection | null, getSender: (role: VideoRole) => RTCRtpSender | null): { /** The embedder's settings for one role, or null once that stream has stopped. */ setSettings(role: VideoRole, settings: VideoSendSettings | null): void; onWanted(update: VideoWanted & { mid: string; }): void; /** The SFU's cap on what this peer sends it, in bits per second, from room_joined. */ setIngestCap(bps: number | null): void; /** Once a second while connected: the estimate, the holds, the pause and the resume check. */ tick: () => void; };