import { ApplianceId, ApplianceInfoDTO, ApplianceStatus, ConnectionState } from './aegapi-types.js';
export type WeekdayLC = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
export declare enum RX92PowerMode {
    Quiet = 1,// Lower energy consumption and quieter
    Smart = 2,// Cleans quietly on hard surfaces, uses full power on carpets
    Power = 3
}
export declare enum RX9BatteryStatus {
    Dead = 1,
    CriticalLow = 2,
    Low = 3,
    Medium = 4,
    High = 5,
    FullyCharged = 6
}
export declare enum RX9RobotStatus {
    Cleaning = 1,
    PausedCleaning = 2,
    SpotCleaning = 3,
    PausedSpotCleaning = 4,
    Return = 5,
    PausedReturn = 6,
    ReturnForPitstop = 7,
    PausedReturnForPitstop = 8,
    Charging = 9,
    Sleeping = 10,
    Error = 11,
    Pitstop = 12,
    ManualSteering = 13,
    FirmwareUpgrade = 14
}
export declare enum RX9Dustbin {
    Unknown = "notConnected",
    Present = "connected",
    Missing = "empty",
    Full = "full"
}
export type RX9Capabilities = 'EcoMode' | 'PowerLevels' | 'CustomPlay' | 'FreezeMapOnDemand' | 'InteractiveMap' | 'MultipleScheduledCleaningsPerDay' | 'PowerZones';
export type RX9CleaningCommand = 'play' | 'stop' | 'pause' | 'home';
export interface RX92Zone {
    powerMode: RX92PowerMode;
}
export interface RX92Task {
    enabled: boolean;
    start: {
        weekDays: WeekdayLC[];
        time: string;
        properties: {
            zones: RX92Zone[];
        };
    };
}
export interface RX92Tasks {
    [index: string]: RX92Task;
}
export interface RX9NoTriggers {
    [index: string]: never;
}
export interface RX9ApplianceCapabilities {
    CleaningCommand: {
        access: 'readwrite';
        type: 'string';
        values: {
            play: RX9NoTriggers;
            stop: RX9NoTriggers;
            pause: RX9NoTriggers;
            home: RX9NoTriggers;
        };
    };
    robotStatus: {
        access: 'read';
        type: string;
        values: {
            1: RX9NoTriggers;
            2: RX9NoTriggers;
            3: RX9NoTriggers;
            4: RX9NoTriggers;
            5: RX9NoTriggers;
            6: RX9NoTriggers;
            7: RX9NoTriggers;
            8: RX9NoTriggers;
            9: RX9NoTriggers;
            10: RX9NoTriggers;
            11: RX9NoTriggers;
            12: RX9NoTriggers;
            13: RX9NoTriggers;
            14: RX9NoTriggers;
        };
    };
    dustbinStatus?: {
        access: 'read';
        type: 'string';
        values: {
            NOTCONNECTED: RX9NoTriggers;
            CONNECTED: RX9NoTriggers;
            EMPTY: RX9NoTriggers;
            FULL: RX9NoTriggers;
        };
    };
    batteryStatus?: {
        access: 'read';
        type: 'int';
        max: 6;
        min: 1;
    };
    powerMode?: {
        access: 'read';
        type: 'int';
        min: 1;
        max: 3;
    };
}
export interface RX9ApplianceInfo {
    applianceInfo: ApplianceInfoDTO;
    capabilities: RX9ApplianceCapabilities;
}
export interface RX9Message {
    id: number;
    timestamp: number;
    type: number;
    userErrorID?: number;
    internalErrorID?: number;
    text: string;
}
export interface RX9CapabilitiesObject {
    [index: string]: object;
}
export interface RX9ApplianceStateReportedBase {
    availableLanguages: string[];
    capabilities: RX9CapabilitiesObject;
    batteryStatus: RX9BatteryStatus;
    robotStatus: RX9RobotStatus;
    messageList: {
        messages: RX9Message[];
    };
    dustbinStatus: RX9Dustbin;
    platform: string;
    applianceName: string;
    firmwareVersion: string;
    language: string;
    mute: boolean;
}
export interface RX91ApplianceStateReported extends RX9ApplianceStateReportedBase {
    ecoMode: boolean;
}
export interface RX92ApplianceStateReported extends RX9ApplianceStateReportedBase {
    powerMode: RX92PowerMode;
    tasks?: RX92Tasks;
}
export type RX9ApplianceStateReported = RX91ApplianceStateReported | RX92ApplianceStateReported;
export interface RX9ApplianceStateProperties {
    reported: RX9ApplianceStateReported;
}
export interface RX9ApplianceState {
    applianceId: ApplianceId;
    connectionState: ConnectionState;
    status: ApplianceStatus;
    properties: RX9ApplianceStateProperties;
}
export interface RX9Command {
    CleaningCommand: RX9CleaningCommand;
}
//# sourceMappingURL=aegapi-rx9-types.d.ts.map