import { z } from 'zod'; import type { Config } from '../config/schema.js'; import type { HomeContextSnapshot } from './snapshot.js'; import type { HomeCapabilityInventory } from './types.js'; export declare const HomeModelCandidateSchema: z.ZodObject<{ kind: z.ZodEnum<{ project_next_step: "project_next_step"; delivery_risk: "delivery_risk"; meeting_prep: "meeting_prep"; commitment_follow_up: "commitment_follow_up"; automation_candidate: "automation_candidate"; }>; projectId: z.ZodOptional; title: z.ZodString; outcome: z.ZodString; rationale: z.ZodString; evidenceIds: z.ZodArray; confidence: z.ZodEnum<{ low: "low"; high: "high"; medium: "medium"; }>; urgency: z.ZodEnum<{ now: "now"; today: "today"; this_week: "this_week"; }>; estimatedMinutes: z.ZodOptional; risk: z.ZodEnum<{ analysis: "analysis"; external_read: "external_read"; file_write: "file_write"; external_write: "external_write"; }>; proposedSteps: z.ZodArray; requiredCapabilities: z.ZodDefault; capability: z.ZodString; required: z.ZodDefault; }, z.core.$strict>>>; verification: z.ZodDefault>; actionPrompt: z.ZodString; degradedActionPrompt: z.ZodOptional; }, z.core.$strict>; export declare const HomeModelResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ state: z.ZodLiteral<"quiet">; reason: z.ZodEnum<{ no_change: "no_change"; insufficient_value: "insufficient_value"; }>; }, z.core.$strict>, z.ZodObject<{ state: z.ZodLiteral<"clarification">; question: z.ZodString; options: z.ZodArray>; evidenceIds: z.ZodArray; }, z.core.$strict>, z.ZodObject<{ state: z.ZodLiteral<"ready">; candidates: z.ZodArray; projectId: z.ZodOptional; title: z.ZodString; outcome: z.ZodString; rationale: z.ZodString; evidenceIds: z.ZodArray; confidence: z.ZodEnum<{ low: "low"; high: "high"; medium: "medium"; }>; urgency: z.ZodEnum<{ now: "now"; today: "today"; this_week: "this_week"; }>; estimatedMinutes: z.ZodOptional; risk: z.ZodEnum<{ analysis: "analysis"; external_read: "external_read"; file_write: "file_write"; external_write: "external_write"; }>; proposedSteps: z.ZodArray; requiredCapabilities: z.ZodDefault; capability: z.ZodString; required: z.ZodDefault; }, z.core.$strict>>>; verification: z.ZodDefault>; actionPrompt: z.ZodString; degradedActionPrompt: z.ZodOptional; }, z.core.$strict>>; }, z.core.$strict>], "state">; export type HomeModelCandidate = z.infer; export type HomeModelResult = z.infer; export interface HomeModelGeneration { result: HomeModelResult; modelRef: string; usage: { inputTokens?: number; outputTokens?: number; estimatedCostUsd?: number; }; } export interface HomeProviderCallBudget { allowProviderCall(): boolean; } export declare class HomeAdviceBudgetExceededError extends Error { readonly usage: HomeModelGeneration['usage']; constructor(usage?: HomeModelGeneration['usage']); } export declare class HomeAdviceGenerator { private readonly config; constructor(config: () => Config); generate(snapshot: HomeContextSnapshot, capabilities: HomeCapabilityInventory, signal?: AbortSignal, budget?: HomeProviderCallBudget): Promise; }