import type { ModelInfo, ModelRef, RegistryLike } from "../types.js"; import type { OptimizeResult } from "../optimize.js"; import { type CustomUiLike } from "./component.js"; export interface PromptComposerUiLike extends CustomUiLike { setStatus?: (key: string, message?: string) => void; setWorkingMessage?: (message?: string) => void; setWorkingVisible?: (visible: boolean) => void; input?: (prompt: string) => Promise; } export interface ComposePromptResult { original: string; prompt: string; optimizedPrompt?: string; } export declare function composePrompt(args: { ui: PromptComposerUiLike; title: string; placeholder: string; registry: ModelInfo[]; signal: AbortSignal; model?: ModelRef; modelRegistry?: RegistryLike; fetchImpl?: typeof fetch; onOptimized?: (result: OptimizeResult) => void; onConfigure?: () => Promise; configureLabel?: string; context?: string[] | (() => string[]); allowEmpty?: boolean; }): Promise;