export interface HomeAssistantStateRecord {
    readonly entity_id: string;
    readonly state: string;
    readonly attributes?: Record<string, unknown> | undefined;
    readonly last_changed?: string | undefined;
    readonly last_updated?: string | undefined;
    readonly context?: Record<string, unknown> | undefined;
}
export interface HomeAssistantServiceRecord {
    readonly domain: string;
    readonly services: Record<string, unknown> | readonly string[];
}
export interface HomeAssistantClientOptions {
    readonly baseUrl: string;
    readonly accessToken?: string | undefined;
    readonly timeoutMs?: number | undefined;
    readonly maxResponseBytes?: number | undefined;
}
export interface HomeAssistantGoodVibesEvent {
    readonly type: string;
    readonly title?: string | undefined;
    readonly body: string;
    readonly speechText?: string | undefined;
    readonly status?: string | undefined;
    readonly jobId?: string | undefined;
    readonly runId?: string | undefined;
    readonly agentId?: string | undefined;
    readonly sessionId?: string | undefined;
    readonly routeId?: string | undefined;
    readonly surfaceId?: string | undefined;
    readonly externalId?: string | undefined;
    readonly messageId?: string | undefined;
    readonly replyToMessageId?: string | undefined;
    readonly conversationId?: string | undefined;
    readonly metadata?: Record<string, unknown> | undefined;
}
export declare class HomeAssistantIntegration {
    private readonly baseUrl;
    private readonly accessToken?;
    private readonly timeoutMs;
    private readonly maxResponseBytes;
    constructor(options: HomeAssistantClientOptions);
    getApiStatus(): Promise<unknown>;
    getConfig(): Promise<unknown>;
    listStates(): Promise<HomeAssistantStateRecord[]>;
    getState(entityId: string): Promise<HomeAssistantStateRecord | null>;
    listServices(): Promise<HomeAssistantServiceRecord[]>;
    callService(input: {
        readonly domain: string;
        readonly service: string;
        readonly serviceData?: Record<string, unknown> | undefined;
        readonly returnResponse?: boolean | undefined;
    }): Promise<unknown>;
    fireEvent(eventType: string, eventData?: Record<string, unknown>): Promise<unknown>;
    renderTemplate(template: string, variables?: Record<string, unknown>): Promise<string>;
    publishGoodVibesEvent(eventType: string, event: HomeAssistantGoodVibesEvent): Promise<unknown>;
    private requestJson;
    private requestText;
    private request;
}
export declare function normalizeHomeAssistantBaseUrl(value: string): string;
//# sourceMappingURL=homeassistant.d.ts.map