import type { EventListener } from "@zwave-js/shared"; import type { StatisticsEventCallbacksWithSelf } from "../../driver/Statistics.js"; import type { ZWaveNode } from "../Node.js"; import type { NodeStatistics } from "../NodeStatistics.js"; import type { ZWaveNodeEventCallbacks } from "../_Types.js"; import { NodeSecurityMixin } from "./05_Security.js"; type ReplaceNodeWithThis = { [K in keyof T]: T[K] extends ZWaveNode ? TThis : T[K]; }; export type EventsToAbstract> = { [K in keyof T]: (...args: ReplaceNodeWithThis>) => void; }; type AbstractNodeEvents = EventsToAbstract>; export declare abstract class NodeEventsMixin extends NodeSecurityMixin { protected abstract _emit>(event: TEvent, ...args: Parameters[TEvent]>): boolean; protected abstract _on>(event: TEvent, callback: AbstractNodeEvents[TEvent]): this; protected abstract _once>(event: TEvent, callback: AbstractNodeEvents[TEvent]): this; } export {}; //# sourceMappingURL=10_Events.d.ts.map