import { AEGApplianceRX9 } from './aeg-appliance-rx9.js';
import { AnsiLogger } from 'matterbridge/logger';
import { Config } from './config-types.js';
import { BabelStaticRX9 } from './babel-static-rx9.js';
import { BABEL_DYNAMIC_RX9 } from './babel-dynamic-rx9.js';
import { MaybePromise } from 'matterbridge/matter';
type BabelDynamicRX9 = typeof BABEL_DYNAMIC_RX9;
type BabelEventRX9 = keyof BabelDynamicRX9;
type BabelStatusRX9 = {
    [K in BabelEventRX9]: ReturnType<BabelDynamicRX9[K]>;
};
export type BabelListenerRX9<Event extends BabelEventRX9> = (value: BabelStatusRX9[Event]) => MaybePromise;
export type BabelListenersRX9 = {
    [Event in BabelEventRX9]: BabelListenerRX9<Event>[];
};
export declare class BabelRX9 {
    readonly log: AnsiLogger;
    readonly config: Config;
    readonly appliance: AEGApplianceRX9;
    readonly basicInformation: BabelStaticRX9;
    private readonly listeners;
    private readonly emittedState;
    constructor(log: AnsiLogger, config: Config, appliance: AEGApplianceRX9);
    on<Event extends BabelEventRX9>(event: Event, listener: BabelListenerRX9<Event>): this;
    emitIfChanged(event: BabelEventRX9): Promise<void>;
    getState<K extends BabelEventRX9>(event: K): BabelStatusRX9[K] | undefined;
}
export {};
//# sourceMappingURL=babel-rx9.d.ts.map