import { type SessionRealtimeModel } from "@opengeni/contracts"; import type { LatencyMode as LatencyModeT, ReasoningEffort as ReasoningEffortT } from "../types.js"; /** Query-string composer / voice launch intent (session + sessions-index). */ export type ComposerLaunchSearch = { model?: string | undefined; effort?: ReasoningEffortT | undefined; latency?: LatencyModeT | undefined; realtime?: SessionRealtimeModel | undefined; /** File a newly created session in this workspace folder (`default` selects Default). */ channelId?: string | undefined; /** One installed session-selected Skill to freeze onto the new session. */ skillCapabilityId?: string | undefined; /** * `?modelSource=default`: the model/effort/latency carry the resolved default * (a credit purchase return), not the person's choice. */ followDefault?: true | undefined; }; /** Stable empty search — safe default prop (no per-render object literal). */ export declare const EMPTY_COMPOSER_LAUNCH: ComposerLaunchSearch; export declare function parseComposerLaunchSearch(search: Record): ComposerLaunchSearch; export declare function composerLaunchSearchKey(launch: ComposerLaunchSearch): string | null; /** * The new-chat draft's model-policy marker after a URL launch applies its * policy. A launch that carries the resolved default keeps following the * default, so a later subscription connect or saved workspace default still * replaces it; any other launch policy is the person's choice. `undefined` is * an older server that reports no marker and gets none back. */ export declare function modelProvidedAfterLaunch(launch: ComposerLaunchSearch, current: boolean | undefined): boolean | undefined; /** Keep durable launch attachments after model/effort/latency are applied locally. */ export declare function composerLaunchSearchAfterPolicyApply(launch: ComposerLaunchSearch): ComposerLaunchSearch;