import { Optional } from '../../../../../common';
import { DeviceModel } from '../../../devices.model';
import { ModeState, DeviceOpState, DeviceState, StateCommandAndStatus } from '../../../states';
export declare const ManualModeStateName: 'manualMode';
export type ManualModeStateName = typeof ManualModeStateName;
export declare class ManualModeState extends DeviceOpState<ManualModeStateName, Optional<number>> {
    private speedIndex;
    constructor(device: DeviceModel, opType?: number, identifier?: number[]);
    parseOpCommand(opCommand: number[]): void;
    protected readonly stateToCommand: (nextState: Optional<number>) => Optional<StateCommandAndStatus>;
}
export declare const CustomModeStateName: 'customMode';
export type CustomModeStateName = typeof CustomModeStateName;
export type CustomProgram = {
    id: number;
    fanSpeed: number;
    duration: number;
    remaining: number;
};
export type CustomMode = {
    currentProgramId?: number;
    programs?: Record<number, CustomProgram>;
    currentProgram?: CustomProgram;
};
export declare class CustomModeState extends DeviceOpState<CustomModeStateName, CustomProgram | undefined> {
    private customModes;
    constructor(device: DeviceModel, opType?: number, identifier?: number[]);
    parseOpCommand(opCommand: number[]): void;
    protected readonly stateToCommand: (nextState: CustomProgram | undefined) => Optional<StateCommandAndStatus>;
}
export declare class PurifierActiveMode extends ModeState {
    constructor(device: DeviceModel, states: (DeviceState<string, any> | undefined)[]);
    protected readonly stateToCommand: () => undefined;
    setState(nextState: Optional<DeviceState<string, unknown>>): string[];
}
//# sourceMappingURL=purifier.modes.d.ts.map