import type { SubtitleStyle } from './subtitle-style.ts';
export type RenderScene = (RenderSceneObject | string) | (RenderSceneObject | string)[];
export interface RenderSceneObject {
    id?: string;
    preset?: string;
    input?: {
        type?: string;
        file?: string | null;
        video?: {
            alpha?: RenderSceneAlpha | null;
            interlaced?: RenderSceneInterlaced | null;
        };
        proxy?: string | null;
        proxyManifest?: string | null;
        proxyFile?: string | null;
        manifest?: string | null;
        timecode?: number;
        timezone?: string;
    } | null;
    lang?: string;
    subtitle?: string;
    graphics?: string;
    subtitleTracks?: RenderSceneSubtitleTracks;
    video?: {
        filters?: RenderSceneFilters;
        crop?: RenderSceneCrop;
        focus?: RenderSceneFocus;
        orientation?: number;
        /** @deprecated Use input.video.interlaced */
        interlaced?: RenderSceneInterlaced | null;
        /** @deprecated Use input.video.alpha */
        alpha?: RenderSceneAlpha | null;
    };
    audio?: {
        pan?: number[][];
    };
    start?: number;
    end?: number;
    transcribe?: {
        language?: string;
        pan?: number[];
        diarization?: boolean;
        initialPrompt?: string;
    };
    /** @deprecated Use video.crop instead */
    crop?: RenderSceneCrop;
    /** @deprecated Use video.filters instead */
    filters?: RenderSceneFilters;
    /** @deprecated Use video.orientation instead */
    orientation?: number;
    /** @deprecated Use video.orientation instead */
    rotate?: number;
    /** @deprecated Use input.video.interlaced instead */
    interlaced?: RenderSceneInterlaced | null;
    /** @deprecated Use input.video.alpha instead */
    alpha?: RenderSceneAlpha | null;
}
export interface RenderSceneCrop {
    x?: number;
    y?: number;
    width?: number;
    height?: number;
}
export interface RenderSceneFocus {
    x?: number;
    y?: number;
}
export type RenderSceneInterlaced = false | "tff" | "bff";
/** true = premultiplied alpha, 'straight' = straight alpha, null/undefined = auto */
export type RenderSceneAlpha = boolean | "straight";
export interface RenderSceneFilters {
    eq?: {
        brightness?: number;
        contrast?: number;
        gamma?: number;
        saturation?: number;
    };
    hue?: {
        h?: number;
        s?: number;
        b?: number;
    };
    colorbalance?: {
        rs?: number;
        gs?: number;
        bs?: number;
        rm?: number;
        gm?: number;
        bm?: number;
        rh?: number;
        gh?: number;
        bh?: number;
    };
}
export type RenderSceneSubtitleTracks = {
    [trackId: string]: RenderSceneSubtitleTrack;
};
export interface RenderSceneSubtitleTrack {
    style?: string | null;
    styleOverrides?: SubtitleStyle;
}
