import type { DatabaseSync } from 'node:sqlite'; import type { HomeAdviceMetrics, HomeAdvisor, HomeOpportunityHistoryItem } from '@xopcai/gateway-contract'; import type { HomeOpportunityActionRequest, HomeOpportunityActionResponse, HomeOpportunityFeedbackRequest } from '@xopcai/gateway-contract'; import { type HomeAdviceGenerator } from './generator.js'; import { type HomeGenerationReason, type HomePrincipal } from './repository.js'; import { HomeSnapshotBuilder } from './snapshot.js'; import type { HomeCapabilityInventory } from './types.js'; import { type HomeOpportunityNotification } from './notification.js'; import type { HomeCapabilityRequirement, HomeCapabilityResolution } from './capability-preflight.js'; export declare const HOME_CONTEXT_REFRESH_COOLDOWN_MS: number; export declare const DAILY_HOME_PROVIDER_CALL_BUDGET = 12; export declare const DAILY_HOME_TOKEN_BUDGET = 120000; export interface HomeIntelligenceHostDeps { principal: HomePrincipal; snapshot: HomeSnapshotBuilder; generator: Pick; capabilities(): HomeCapabilityInventory; resolveCapabilities(requirements: readonly HomeCapabilityRequirement[], options?: { degradedActionAvailable?: boolean; }): HomeCapabilityResolution; publish(type: string, payload: unknown): void; notifyOpportunity(payload: HomeOpportunityNotification): void; locale(): 'en' | 'zh'; enabled?(): boolean; dispatchTaskRuns?(): void; now?: () => number; } export declare class HomeIntelligenceHost { private readonly deps; private readonly repository; private readonly opportunities; private readonly now; private timer?; private running; private stopped; private abortController; private localeHint; private contextRefreshTimer?; private readonly pendingContextReasons; constructor(db: DatabaseSync, deps: HomeIntelligenceHostDeps); start(): void; stop(): void; getAdvisor(): HomeAdvisor; getMetrics(since?: number): HomeAdviceMetrics; getHistory(): HomeOpportunityHistoryItem[]; requestRefresh(reason: HomeGenerationReason, idempotencyKey?: string, locale?: string): string; private currentFingerprint; private scheduleContextRefresh; sourceChanged(input: { sourceInstanceId: string; revision: string; refresh: boolean; }): void; act(opportunityId: string, input: HomeOpportunityActionRequest): HomeOpportunityActionResponse; feedback(opportunityId: string, input: HomeOpportunityFeedbackRequest): void; undoFeedback(opportunityId: string, idempotencyKey: string): void; tick(): Promise; private process; private resolveCapabilityRequirements; }