import type { SecretsManager } from '../../config/secrets.js';
import type { ServiceRegistry } from '../../config/service-registry.js';
import { HomeAssistantIntegration } from '../../integrations/homeassistant.js';
import type { ChannelOperatorActionDescriptor, ChannelToolDescriptor } from '../types.js';
import type { BuiltinChannelRuntimeDeps } from './shared.js';
export declare const HOME_ASSISTANT_SURFACE: "homeassistant";
export declare const HOME_ASSISTANT_WEBHOOK_PATH = "/webhook/homeassistant";
export declare const HOME_ASSISTANT_DEFAULT_EVENT_TYPE = "goodvibes_message";
interface ConfigReader {
    get(key: string): unknown;
}
interface HomeAssistantActionContext {
    readonly deps: BuiltinChannelRuntimeDeps;
}
export interface HomeAssistantSurfaceManifest {
    readonly protocolVersion: number;
    readonly surface: 'homeassistant';
    readonly label: string;
    readonly device: {
        readonly identifiers: readonly string[];
        readonly manufacturer: string;
        readonly model: string;
        readonly name: string;
        readonly swVersion?: string | undefined;
    };
    readonly daemon: {
        readonly baseUrl: string;
        readonly auth: 'bearer';
        readonly endpoints: Record<string, string>;
    };
    readonly capabilities: readonly string[];
    readonly events: {
        readonly outboundEventType: string;
        readonly inboundWebhookPath: string;
        readonly inboundSecretHeaders: readonly string[];
    };
    readonly recommendedServices: readonly {
        readonly name: string;
        readonly target: 'config_entry' | 'device' | 'entity';
        readonly description: string;
    }[];
    readonly metadata: Record<string, unknown>;
}
export declare function listHomeAssistantOperatorActions(): ChannelOperatorActionDescriptor[];
export declare function listHomeAssistantTools(): ChannelToolDescriptor[];
export declare function runHomeAssistantOperatorAction(context: HomeAssistantActionContext, actionId: string, input?: Record<string, unknown>): Promise<{
    readonly handled: boolean;
    readonly result: unknown;
}>;
export declare function buildHomeAssistantManifest(deps: Pick<BuiltinChannelRuntimeDeps, 'configManager'>): HomeAssistantSurfaceManifest;
export declare function createHomeAssistantClient(deps: BuiltinChannelRuntimeDeps): Promise<HomeAssistantIntegration>;
export declare function resolveHomeAssistantBaseUrl(configManager: ConfigReader, serviceRegistry?: Pick<ServiceRegistry, 'get'>): string | null;
export declare function resolveHomeAssistantAccessToken(deps: {
    readonly configManager: ConfigReader;
    readonly secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'> | undefined;
    readonly serviceRegistry?: Pick<ServiceRegistry, 'resolveSecret'> | undefined;
}): Promise<string | null>;
export declare function resolveHomeAssistantWebhookSecret(deps: {
    readonly configManager: ConfigReader;
    readonly secretsManager?: Pick<SecretsManager, 'get' | 'getGlobalHome'> | undefined;
    readonly serviceRegistry?: Pick<ServiceRegistry, 'resolveSecret'> | undefined;
}): Promise<string | null>;
export {};
//# sourceMappingURL=homeassistant.d.ts.map