import type { DiarizationMode, EmbeddedVideoMode, FirecrawlMode, LengthArg, MarkdownMode, PreprocessMode, VideoMode, YoutubeMode } from "../flags.js";
import type { OutputLanguage } from "../language.js";
import { type RunConfigInput } from "./config-state.js";
import { type RunContextState } from "./context.js";
import { type RunModelSpec } from "./model-runtime.js";
import type { SummarizeRequest } from "./summarize-contracts.js";
export type SummarizeRunInput = SummarizeRequest["input"];
export type SummarizeRunRequest = Omit<SummarizeRequest, "input"> & {
    input: SummarizeRunInput;
};
export type ResolvedSummarizeSpec = {
    format: "text" | "markdown";
    maxExtractCharacters: number | null;
    timeoutMs: number;
    retries: number;
    markdownMode: MarkdownMode;
    preprocessMode: PreprocessMode;
    youtubeMode: YoutubeMode;
    firecrawlMode: FirecrawlMode;
    videoMode: VideoMode;
    embeddedVideoMode: EmbeddedVideoMode;
    transcriptTimestamps: boolean;
    transcriptDiarization: DiarizationMode | null;
    outputLanguage: OutputLanguage;
    lengthArg: LengthArg;
    forceSummary: boolean;
    promptOverride: string | null;
    lengthInstruction: string | null;
    languageInstruction: string | null;
    maxOutputTokensArg: number | null;
    allowAutoCliFallback: boolean;
    model: Omit<RunModelSpec, "configForModelSelection">;
    configPath: string | null;
    configModelLabel: string | null;
};
export type ResolvedSummarizeRun = {
    spec: ResolvedSummarizeSpec;
    bindings: {
        context: RunContextState;
        model: RunModelSpec;
        envForRun: Record<string, string | undefined>;
    };
};
export declare function resolveSummarizeRun({ request, env, configInput, useConfigPromptDefault, }: {
    request: SummarizeRunRequest;
    env: Record<string, string | undefined>;
    configInput?: RunConfigInput | null;
    useConfigPromptDefault?: boolean;
}): ResolvedSummarizeRun;
