import EventBus from "./eventBus"; import type Extension from "./extension/extension"; import Mqtt, { type MqttPublishOptions } from "./mqtt"; import State from "./state"; import Zigbee from "./zigbee"; export declare class Controller { #private; readonly eventBus: EventBus; readonly zigbee: Zigbee; readonly state: State; readonly mqtt: Mqtt; private restartCallback; private exitCallback; readonly extensions: Set; readonly extensionArgs: ConstructorParameters; private sdNotify; constructor(restartCallback: () => Promise, exitCallback: (code: number, restart: boolean) => Promise); start(): Promise; enableDisableExtension(enable: boolean, name: string): Promise; getExtension(name: string): Extension | undefined; addExtension(extension: Extension): Promise; removeExtension(extension: Extension): Promise; private startExtension; private stopExtension; stop(restart?: boolean, code?: number, signal?: NodeJS.Signals | undefined): Promise; exit(code: number, restart?: boolean): Promise; publishEntityState(entity: Group | Device, payload: KeyValue, stateChangeReason?: StateChangeReason): Promise; iteratePayloadAttributeOutput(topicRoot: string, payload: KeyValue, options: Partial): Promise; } //# sourceMappingURL=controller.d.ts.map