import { type UrlFlowResult } from "../run/flows/url/flow.js";
import type { UrlFlowContext } from "../run/flows/url/types.js";
import type { AcquiredAssetExecutionResult, AcquiredAssetExecutor } from "./asset-execution.js";
import type { SummarizeEventSink, SummarizeInput, SummarizeRequest } from "./summarize-contracts.js";
type PreparedInput = Exclude<SummarizeInput, {
    kind: "file" | "stdin";
}>;
type RoutedInput = Exclude<PreparedInput, {
    kind: "input-url";
}>;
type RawUrlInput = Extract<SummarizeInput, {
    kind: "input-url";
}>;
type UrlInput = Extract<SummarizeInput, {
    kind: "url";
}>;
export declare function resolveInitialUrlInput({ input, request, isYoutubeUrl, ctx, assetExecutor, emit, }: {
    input: PreparedInput;
    request: SummarizeRequest;
    isYoutubeUrl: boolean;
    ctx: UrlFlowContext;
    assetExecutor: AcquiredAssetExecutor;
    emit: SummarizeEventSink;
}): Promise<{
    input: RoutedInput;
    rawUrlInput: RawUrlInput | null;
}>;
export declare function executeUrlWithAssetFallback({ input, rawUrlInput, request, isYoutubeUrl, ctx, assetExecutor, emit, }: {
    input: UrlInput;
    rawUrlInput: RawUrlInput | null;
    request: SummarizeRequest;
    isYoutubeUrl: boolean;
    ctx: UrlFlowContext;
    assetExecutor: AcquiredAssetExecutor;
    emit: SummarizeEventSink;
}): Promise<UrlFlowResult | AcquiredAssetExecutionResult>;
export {};
