import type { RouteBindingManager } from '../channels/index.js'; import type { CompanionChatManager } from '../companion/companion-chat-manager.js'; import type { ConfigManager } from '../config/manager.js'; import type { SecretsManager } from '../config/secrets.js'; import type { ServiceRegistry } from '../config/service-registry.js'; /** The slice of the daemon surface-action context this module consults. */ export interface HomeAssistantReplyDeps { readonly serviceRegistry: ServiceRegistry; readonly secretsManager: Pick; readonly configManager: ConfigManager; readonly routeBindings: RouteBindingManager; readonly companionChatManager: CompanionChatManager | null; readonly resolveDefaultProviderModel?: (() => { provider: string; model: string; } | null) | undefined; } export interface HomeAssistantSurfaceChatInput { readonly body: string; readonly messageId: string; readonly conversationId: string; readonly surfaceId: string; readonly channelId: string; readonly threadId?: string | undefined; readonly userId?: string | undefined; readonly displayName?: string | undefined; readonly title: string; readonly providerId?: string | undefined; readonly modelId?: string | undefined; readonly tools?: readonly string[] | undefined; readonly context?: Record | undefined; readonly remoteSessionTtlMs?: number | undefined; readonly publishEvent?: boolean | undefined; } export interface HomeAssistantSurfaceChatResult { readonly sessionId: string; readonly routeId?: string | undefined; readonly messageId: string; readonly assistantMessageId?: string | undefined; readonly response?: string | undefined; readonly delivered: boolean; readonly error?: string | undefined; } /** Run one inbound Home Assistant message as a chat turn and publish the reply. */ export declare function postHomeAssistantSurfaceChatMessage(deps: HomeAssistantReplyDeps, input: HomeAssistantSurfaceChatInput): Promise; /** Publish the assistant's reply back to Home Assistant as a GoodVibes event. */ export declare function publishHomeAssistantChatReply(deps: HomeAssistantReplyDeps, input: Pick, result: { readonly sessionId: string; readonly routeId?: string | undefined; readonly assistantMessageId?: string | undefined; readonly response: string; readonly status: string; }): Promise; //# sourceMappingURL=surface-homeassistant-reply.d.ts.map