import type { KlawConfig } from "../../config/types.klaw.js"; import { type DeliveryContext } from "../../utils/delivery-context.js"; import { type AgentGeneratedAttachment } from "../generated-attachments.js"; import { type AgentInternalEvent } from "../internal-events.js"; export type MediaGenerationTaskHandle = { taskId: string; runId: string; requesterSessionKey: string; requesterOrigin?: DeliveryContext; taskLabel: string; }; export type MediaGenerateBackgroundScheduler = (work: () => Promise) => void; export type MediaGenerationExecutionResult = { provider: string; model: string; count: number; paths: string[]; wakeResult: string; attachments?: AgentGeneratedAttachment[]; mediaUrls?: string[]; }; type CreateMediaGenerationTaskRunParams = { sessionKey?: string; requesterOrigin?: DeliveryContext; prompt: string; providerId?: string; }; type RecordMediaGenerationTaskProgressParams = { handle: MediaGenerationTaskHandle | null; progressSummary: string; eventSummary?: string; }; type CompleteMediaGenerationTaskRunParams = { handle: MediaGenerationTaskHandle | null; provider: string; model: string; count: number; paths: string[]; }; type FailMediaGenerationTaskRunParams = { handle: MediaGenerationTaskHandle | null; error: unknown; }; type WakeMediaGenerationTaskCompletionParams = { config?: KlawConfig; handle: MediaGenerationTaskHandle | null; status: "ok" | "error"; statusLabel: string; result: string; attachments?: AgentGeneratedAttachment[]; mediaUrls?: string[]; statsLine?: string; }; type MediaGenerationTaskLifecycle = { createTaskRun: (params: CreateMediaGenerationTaskRunParams) => MediaGenerationTaskHandle | null; recordTaskProgress: (params: RecordMediaGenerationTaskProgressParams) => void; completeTaskRun: (params: CompleteMediaGenerationTaskRunParams) => void; failTaskRun: (params: FailMediaGenerationTaskRunParams) => void; wakeTaskCompletion: (params: WakeMediaGenerationTaskCompletionParams) => Promise; }; export declare function withMediaGenerationTaskKeepalive(params: { handle: MediaGenerationTaskHandle | null; progressSummary: string; eventSummary?: string; run: () => Promise; }): Promise; export declare function createDefaultMediaGenerateBackgroundScheduler(params: { toolName: string; onCrash: (message: string, meta?: Record) => void; }): MediaGenerateBackgroundScheduler; export declare function buildMediaGenerationStartedToolResult(params: { toolName: string; generationLabel: string; completionLabel: string; taskHandle: MediaGenerationTaskHandle | null; detailExtras?: Record; messages?: Array; }): { content: { type: "text"; text: string; }[]; details: { async: boolean; status: string; taskId?: string | undefined; runId?: string | undefined; task?: { taskId: string; runId: string; } | undefined; }; }; export declare function scheduleMediaGenerationTaskCompletion(params: { lifecycle: MediaGenerationTaskLifecycle; handle: MediaGenerationTaskHandle | null; scheduleBackgroundWork: MediaGenerateBackgroundScheduler; progressSummary: string; config?: KlawConfig; toolName: string; run: () => Promise; onWakeFailure: (message: string, meta?: Record) => void; }): void; export declare function createMediaGenerationTaskLifecycle(params: { toolName: string; taskKind: string; label: string; queuedProgressSummary: string; generatedLabel: string; failureProgressSummary: string; eventSource: AgentInternalEvent["source"]; announceType: string; completionLabel: string; }): MediaGenerationTaskLifecycle; export {};