export type SlotType = "string" | "number" | "boolean"; export type SlotSpec = { optional?: boolean; enum?: readonly string[]; freeText?: boolean; type?: SlotType; }; export type IntentDefinition = { name: string; slots?: Record; }; export type ParsedPerception = { observed_elements: string[]; chosen_action: string; alternatives_considered: string[]; assumptions: string[]; risk: number; }; export type ParsedOutcomeCapture = { success: boolean; error_code?: string; observed_result?: string; expected_result?: string; recovery_hint?: string; }; export type ExtensionsSpec = { allow_goal_updates?: boolean; allow_claims_hint?: boolean; allow_perception?: boolean; allow_outcome_capture?: boolean; allowed_claim_types?: readonly string[]; max_claims_hint?: number; max_goal_updates?: number; max_perception_elements?: number; max_alternatives?: number; }; export type ParsedGoalUpdate = { goal: string; progress?: number; progress_delta?: number; priority?: number; }; export type ParsedClaimsHint = { type?: string; text: string; confidence?: number; }; export type ParsedSidecarIntent = { intent: string; slots: Record; context?: string; confidence?: number; goal_updates?: ParsedGoalUpdate[]; claims_hint?: ParsedClaimsHint[]; perception?: ParsedPerception; outcome_capture?: ParsedOutcomeCapture; raw_message: string; enable_semantic: boolean; }; export type IntentSpec = { domain: string; fallback_intent: string; intents: readonly IntentDefinition[]; maxContextChars?: number; extensions?: ExtensionsSpec; enableSemantic?: (intent: ParsedSidecarIntent) => boolean; }; export declare class IntentSpecRegistry { private specs; private fallbackByAgentType; registerForGoal(agentType: string, goalDescription: string, spec: IntentSpec): void; registerAgentFallback(agentType: string, spec: IntentSpec): void; resolve(agentType: string, activeGoals: Array<{ description?: string; }> | undefined): IntentSpec | null; }