export interface StreamDomainRecords {
    ":stream": StreamDomainRecord;
    ":stream.stats?": StreamDomainStatsRecord;
    ":stream.controls?": StreamDomainControlsRecord;
    ":stream.ingest": StreamDomainIngestRecord;
    ":stream.ingest.stats?": StreamDomainIngestStatsRecord;
    ":stream-ingest.inputs?": StreamDomainIngestInputsRecord;
}
export interface StreamDomainRecord {
    input?: "webcam" | "screen" | "url" | "push" | `ingest:${string}` | "srt-listener" | "srt-caller";
    url?: string;
    enabled?: boolean;
    endpoints?: {
        enabled?: boolean;
        url?: string;
        asset?: string;
    }[];
}
export interface StreamDomainStatsRecord {
    status?: "stopped" | "broadcasting" | "error";
    proxyStatus?: "stopped" | "broadcasting" | "error";
    rtmpUrl?: string;
    rtmpPublishUrl?: string;
    endpoints?: {
        rtmpUrl?: string;
        status?: "broadcasting" | "failed" | "created" | "stopped" | "finished";
    }[];
    error?: string;
}
export interface StreamDomainControlsRecord {
    value?: {
        label: string;
        type: "button";
        event: "stream.control";
        data: {
            asset: string;
            method: "markIn" | "markOut";
        };
    }[];
}
type PresetName = "avc100" | "xavc-l" | "xdcam-hd422" | "uhq" | "hq" | "lq" | "ll" | "ndi" | "copy" | "opus";
type Preset = PresetName | {
    video: PresetName;
    audio: PresetName;
};
export interface StreamDomainIngestRecord {
    server?: string;
    enabled?: boolean;
    input?: {
        raw_format?: string;
        video_format?: string;
        format_code?: string;
        [key: string]: unknown;
    };
    encoding?: Record<PresetName, Record<string, unknown>> & {
        [key: string]: unknown;
    };
    record?: {
        hls_time?: number;
        hls_list_size?: number;
        mainPreset?: Preset;
        proxyPreset?: Preset;
        main?: Record<string, unknown>;
        proxy?: Record<string, unknown>;
        [extraParams: string]: unknown;
    };
    stream?: {
        preset?: Preset;
        mainPreset?: Preset;
        proxyPreset?: Preset;
        main?: Record<string, unknown>;
        proxy?: Record<string, unknown>;
        [extraParams: string]: unknown;
    } | false | null;
    subtitle?: {
        driver?: string;
        template?: string;
    };
    outputs?: {
        [name: string]: {
            preset?: Preset;
            onfail: string;
            useFifo: string | number;
            fifoOptions: Record<string, unknown>;
            [extraParams: string]: unknown;
        };
    };
    ndi?: boolean;
    video?: string;
    audio?: string;
    channels?: number;
    audioDelay?: number;
    interlaced?: boolean;
}
export interface StreamDomainIngestStatsRecord {
    status?: "starting" | "recording" | "streaming" | "stopping" | "stopped" | "restarting" | "stalled" | "deleted" | "exited" | "not configured" | "initializing" | "error";
    server?: string;
    hostname?: string;
    port?: number;
    error?: string;
    started?: string;
    dup?: number;
    drop?: number;
}
export interface StreamDomainIngestInputsRecord {
    value?: {
        label: string;
        value: string;
    }[];
}
export {};
