import { Logger } from 'homebridge';
import { AEGRobot } from './aeg-robot.js';
import { Config } from './config-types.js';
import { AEGAPIRX9 } from './aegapi-rx9.js';
import { RX9CleaningCommand } from './aegapi-rx9-types.js';
declare abstract class AEGRobotCtrl<Type extends number | string> {
    readonly robot: AEGRobot;
    readonly name: string;
    readonly config: Config;
    readonly log: Logger;
    readonly api: AEGAPIRX9;
    private target?;
    private abortController?;
    private readonly requestTimeout;
    private readonly appliedTimeout;
    readonly toText?: Record<Type, string>;
    constructor(robot: AEGRobot, name: string);
    makeSetter(): (target: Type) => void;
    set(target: Type): Promise<void>;
    trySet(target: Type, signal: AbortSignal): Promise<void>;
    description(target: Type): string;
    abstract isTargetSet(target: Type): boolean | null;
    abstract setTarget(target: Type, signal?: AbortSignal): Promise<void>;
    abstract overrideStatus(target: Type): void;
}
export declare class AEGRobotCtrlActivity extends AEGRobotCtrl<RX9CleaningCommand> {
    readonly robot: AEGRobot;
    constructor(robot: AEGRobot);
    isTargetSet(command: RX9CleaningCommand): boolean | null;
    setTarget(command: RX9CleaningCommand, signal?: AbortSignal): Promise<void>;
    overrideStatus(command: RX9CleaningCommand): void;
}
export {};
//# sourceMappingURL=aeg-robot-ctrl.d.ts.map