import { AnsiLogger } from 'matterbridge/logger';
import { AEGApplianceRX9 } from './aeg-appliance-rx9.js';
import { Config } from './config-types.js';
import { AEGAPIRX9 } from './aegapi-rx9.js';
export declare abstract class AEGApplianceRX9Ctrl<Type extends number | string> {
    readonly appliance: AEGApplianceRX9;
    readonly name: string;
    readonly log: AnsiLogger;
    readonly config: Config;
    readonly api: AEGAPIRX9;
    private target?;
    private setInProgress?;
    private pending?;
    readonly toText?: Record<Type, string>;
    constructor(appliance: AEGApplianceRX9, name: string);
    makeSetter(): (target: Type) => Promise<boolean>;
    set(target: Type): Promise<boolean>;
    trySet(target: Type, signal: AbortSignal): Promise<void>;
    pendingCheckAndPatch(): void;
    description(target: Type): string;
    abstract isTargetSet(target: Type): boolean | undefined;
    abstract setTarget(target: Type, signal?: AbortSignal): Promise<void>;
    abstract preEmitPatch(target: Type): void;
}
//# sourceMappingURL=aeg-appliance-rx9-ctrl.d.ts.map