export type CanonControlValue = string; export type CanonRuntimeStreamingMode = 'none' | 'status' | 'snapshot' | 'block' | 'delta'; export type CanonRuntimeDetailTier = 'primary' | 'detail' | 'diagnostic'; export type CanonRuntimeVisibility = 'conversation' | 'hidden'; export type CanonRuntimeActionAvailability = 'idle' | 'busy' | 'busy_with_queue' | 'waiting_input' | 'always'; export type CanonRuntimeActionPlacement = 'composer_slash' | 'command_palette' | 'session_strip'; export type CanonRuntimeActionCategory = 'plan' | 'turn' | 'session' | 'runtime' | 'details' | 'skill' | 'custom'; export type CanonRuntimePrimitiveId = 'runtime.status' | 'runtime.reasoning.set' | 'runtime.verbosity.set' | 'runtime.usage' | 'context.compact' | 'session.new' | 'session.reset'; export type CanonRuntimeCommandArgumentKind = 'string' | 'enum' | 'boolean'; export interface CanonRuntimeCommandArgumentChoice { value: string; label: string; description?: string; } export interface CanonRuntimeCommandArgumentDescriptor { id: string; label: string; kind: CanonRuntimeCommandArgumentKind; required?: boolean; captureRemaining?: boolean; choices?: ReadonlyArray; } export type CanonRuntimeActionDispatch = { kind: 'control'; controlId: string; value?: CanonControlValue; } | { kind: 'signal'; signal: 'interrupt' | 'stop_and_drop' | 'new_session'; } | { kind: 'primitive'; primitive: CanonRuntimePrimitiveId; } | { kind: 'text_passthrough'; template: string; } | { kind: 'compose'; text: string; } | { kind: 'open_details'; target?: string; }; export interface CanonRuntimeActionDescriptor { id: string; label: string; description?: string; visibility?: CanonRuntimeVisibility; tier?: CanonRuntimeDetailTier; sensitive?: boolean; primitive?: CanonRuntimePrimitiveId; aliases?: ReadonlyArray; category?: CanonRuntimeActionCategory; placements?: ReadonlyArray; availability?: ReadonlyArray; ownerOnly?: boolean; disabledReason?: string | null; trailingTextBehavior?: 'ignore' | 'send_as_prompt'; args?: ReadonlyArray; dispatch: CanonRuntimeActionDispatch; } export interface CanonRuntimeCommandDescriptor extends CanonRuntimeActionDescriptor { primitive?: CanonRuntimePrimitiveId; args?: ReadonlyArray; } export declare function normalizeRuntimeCommandAlias(value: string): string | null; export declare function normalizeRuntimeCommandAliases(command: Pick): string[]; export declare const MAX_PUBLIC_RUNTIME_COMMANDS = 256; export declare function isRuntimePrimitiveId(value: unknown): value is CanonRuntimePrimitiveId; /** Public command metadata shared by REST and direct RTDB publishers. Never copies local configuration. */ export declare function normalizePublicRuntimeCommands(value: unknown): CanonRuntimeCommandDescriptor[]; export interface PublicRuntimeDescriptor { supportsInterrupt?: boolean; supportsInputInterrupt?: boolean; streamingTextMode?: CanonRuntimeStreamingMode; commands?: CanonRuntimeCommandDescriptor[]; } export declare function normalizePublicRuntimeDescriptor(value: unknown): PublicRuntimeDescriptor; /** Read-only session facts, excluding local paths, inventories, and hidden/sensitive values. */ export declare function normalizePublicRuntimeFacts(value: unknown): { id: string; group: "runtime" | "model" | "connection" | "route"; label: string; value: string; tier: "primary" | "detail" | "diagnostic" | undefined; tone: "neutral" | "good" | "warning" | "danger" | undefined; copyable: boolean | undefined; updatedAt: number | undefined; }[];