import type Extension from "./extension/extension"; import { type MqttPublishOptions } from "./mqtt"; export declare class Controller { private eventBus; private zigbee; private state; private 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): Promise; exit(code: number, restart?: boolean): Promise; onZigbeeAdapterDisconnected(): Promise; publishEntityState(entity: Group | Device, payload: KeyValue, stateChangeReason?: StateChangeReason): Promise; iteratePayloadAttributeOutput(topicRoot: string, payload: KeyValue, options: Partial): Promise; } //# sourceMappingURL=controller.d.ts.map