import type { SogniChatMessage } from '../runtime/chatTypes.js'; import type { WorkflowTemplate } from '../workflows/types.js'; import type { ComposeWorkflowDestinationModels } from './composeWorkflowTypes.js'; import type { ImagePromptingType } from './imagePrompt.js'; import type { GenerateWanPromptParams, VideoFramePromptOptions } from './videoComposition.js'; export type HostedCompositionToolName = 'enhance_prompt' | 'compose_lyrics' | 'compose_instrumental' | 'compose_script' | 'compose_workflow' | 'compose_workflow_template'; export interface HostedCompositionToolRequest { toolName: HostedCompositionToolName; arguments: Record; } export declare const HOSTED_COMPOSITION_ROUTER_MAX_TOKENS = 512; export interface BuildEnhancePromptToolArgsInput { prompt: string; destinationModel: string; destinationTool?: string; targetOutput?: string; stylePrompt?: string; promptingType?: ImagePromptingType; modelTitle?: string; randomTheme?: string; } export interface BuildLyricsCompositionToolArgsInput { prompt: string; language?: string; musicPrompt?: string; randomTheme?: string; destinationModel?: string; durationSeconds?: number; } export interface BuildInstrumentalCompositionToolArgsInput { prompt: string; musicPrompt?: string; randomTheme?: string; destinationModel?: string; durationSeconds?: number; } export interface BuildScriptCompositionToolArgsInput extends VideoFramePromptOptions { brief?: string; prompt?: string; scriptType?: string; destinationTool?: string; destinationModel?: string; durationSeconds?: number; firstFrameDescription?: string; } export interface BuildComposeWorkflowToolArgsInput { brief: string; sceneCount?: number; durationSeconds?: number; aspectRatio?: string; style?: string; destinationModels?: ComposeWorkflowDestinationModels; maxEstimatedCapacityUnits?: number; includeAudio?: boolean; returnFormat?: 'json'; } export type ComposeWorkflowTemplateInputDeclArg = { name: string; type: 'image' | 'audio' | 'video' | 'text' | 'number' | 'select' | 'boolean'; required?: boolean; description?: string; default?: unknown; options?: Array<{ value: string; label: string; }>; multiple?: { min: number; max: number; }; internal?: boolean; }; export interface BuildComposeWorkflowTemplateToolArgsInput extends BuildComposeWorkflowToolArgsInput { name: string; description?: string; category?: 'portrait' | 'video-social' | 'makeover' | 'cinematic' | 'music' | 'analysis' | 'custom' | 'other'; visibility?: 'private' | 'public'; inputs?: ComposeWorkflowTemplateInputDeclArg[]; existingTemplate?: WorkflowTemplate; } export declare function buildEnhancePromptToolArgs(input: BuildEnhancePromptToolArgsInput): Record; export declare function buildLyricsCompositionToolArgs(input: BuildLyricsCompositionToolArgsInput): Record; export declare function buildInstrumentalCompositionToolArgs(input: BuildInstrumentalCompositionToolArgsInput): Record; export declare function buildScriptCompositionToolArgs(input: BuildScriptCompositionToolArgsInput): Record; export declare function buildComposeWorkflowToolArgs(input: BuildComposeWorkflowToolArgsInput): Record; export declare function buildComposeWorkflowTemplateToolArgs(input: BuildComposeWorkflowTemplateToolArgsInput): Record; export declare function buildWanScriptCompositionToolArgs(params: GenerateWanPromptParams): Record; export declare function buildHostedCompositionToolMessages(request: HostedCompositionToolRequest): SogniChatMessage[]; //# sourceMappingURL=hostedComposition.d.ts.map