/// import events from 'events'; import { TsType as AdapterTsType } from '../adapter'; import { Device } from './model'; import { DeviceType } from './tstype'; import Group from './model/group'; import { LoggerStub } from "./logger-stub"; interface Options { network: AdapterTsType.NetworkOptions; serialPort: AdapterTsType.SerialPortOptions; databasePath: string; databaseBackupPath: string; backupPath: string; adapter: AdapterTsType.AdapterOptions; /** * This lambda can be used by an application to explictly reject or accept an incoming device. * When false is returned zigbee-herdsman will not start the interview process and immidiately * try to remove the device from the network. */ acceptJoiningDeviceHandler: (ieeeAddr: string) => Promise; } /** * @noInheritDoc */ declare class Controller extends events.EventEmitter { private options; private database; private adapter; private greenPower; private permitJoinNetworkClosedTimer; private permitJoinTimeoutTimer; private permitJoinTimeout; private backupTimer; private databaseSaveTimer; private touchlink; private stopping; private networkParametersCached; private logger?; /** * Create a controller * * To auto detect the port provide `null` for `options.serialPort.path` */ constructor(options: Options, logger?: LoggerStub); /** * Start the Herdsman controller */ start(): Promise; touchlinkIdentify(ieeeAddr: string, channel: number): Promise; touchlinkScan(): Promise<{ ieeeAddr: string; channel: number; }[]>; touchlinkFactoryReset(ieeeAddr: string, channel: number): Promise; touchlinkFactoryResetFirst(): Promise; addInstallCode(installCode: string): Promise; permitJoin(permit: boolean, device?: Device, time?: number): Promise; permitJoinInternal(permit: boolean, reason: 'manual' | 'timer_expired', device?: Device, time?: number): Promise; getPermitJoin(): boolean; getPermitJoinTimeout(): number; isStopping(): boolean; stop(): Promise; private databaseSave; backup(): Promise; coordinatorCheck(): Promise<{ missingRouters: Device[]; }>; reset(type: 'soft' | 'hard'): Promise; getCoordinatorVersion(): Promise; getNetworkParameters(): Promise; /** * Get all devices */ getDevices(): Device[]; /** * Get all devices with a specific type */ getDevicesByType(type: DeviceType): Device[]; /** * Get device by ieeeAddr */ getDeviceByIeeeAddr(ieeeAddr: string): Device; /** * Get device by networkAddress */ getDeviceByNetworkAddress(networkAddress: number): Device; /** * Get group by ID */ getGroupByID(groupID: number): Group; /** * Get all groups */ getGroups(): Group[]; /** * Create a Group */ createGroup(groupID: number): Group; /** * Broadcast a network-wide channel change. */ private changeChannel; /** * Set transmit power of the adapter */ setTransmitPower(value: number): Promise; private onNetworkAddress; private onDeviceAnnounce; private onDeviceLeave; private onAdapterDisconnected; private onDeviceJoinedGreenPower; private selfAndDeviceEmit; private onDeviceJoined; private isZclDataPayload; private onZclOrRawData; } export default Controller; //# sourceMappingURL=controller.d.ts.map