import { type ModelJobWidgetAuthorOptions } from "./author.js"; import type { JobWidgetBrief } from "./types.js"; /** * Writes the caption of a command's job from its brief (command, intent, * timeout); resolves the raw reply, which the registry normalizes with * {@link normalizeJobCaption}, or `undefined` when no model can write one. */ export type JobCaptionWriter = (brief: JobWidgetBrief & { command: string; }, signal: AbortSignal) => Promise; /** * Whether a command needs explaining: one longer than a glance or using * shell control flow (`;`, pipes, `&`, substitutions, several lines). * Redirections like `2>&1` and quoted text are not control flow; a * double-quoted span that substitutes still is. */ export declare function needsJobCaption(command: string): boolean; /** The caption in a model reply: its first non-empty line as plain text with home paths shortened, unquoted, without list markers or a final period. */ export declare function normalizeJobCaption(reply: string): string | undefined; /** A {@link JobCaptionWriter} backed by the `widget` model role. */ export declare function createModelJobCaptionWriter(options: ModelJobWidgetAuthorOptions): JobCaptionWriter;