import type { AssetSummaryContext } from "../run/flows/asset/types.js";
import type { AcquiredAssetInput } from "./input-acquisition.js";
import type { AssetExtractionExecutionResult, AssetMediaExecutionResult, AssetSummaryExecutionResult, SummarizeEventSink, SummarizeRequest } from "./summarize-contracts.js";
type ResolvedAssetInput = Extract<SummarizeRequest["input"], {
    kind: "resolved-asset" | "resolved-media";
}>;
export type AcquiredAssetExecutionResult = AssetMediaExecutionResult | AssetSummaryExecutionResult | AssetExtractionExecutionResult;
export type AcquiredAssetExecutor = {
    execute: (input: ResolvedAssetInput) => Promise<AcquiredAssetExecutionResult>;
    emitProgress: (input: AcquiredAssetInput) => void;
};
type AcquiredAssetExecutorOptions = {
    request: SummarizeRequest;
    context: AssetSummaryContext | null | undefined;
    emit: SummarizeEventSink;
    emitSummary: (summary: string) => void;
    elapsedMs: () => number;
    getSelectedModel: () => string | null;
};
export declare function createAcquiredAssetExecutor(options: AcquiredAssetExecutorOptions): AcquiredAssetExecutor;
export {};
