export declare enum Features {
    'WARMING' = "warming",
    'COOLING' = "cooling"
}
export declare type LocationType = [number, number];
export declare type PhaseType = {
    active: false;
    operation: string;
    position: number;
} | {
    active: true;
    level: number;
    operation: string;
    position: number;
};
export declare type ScheduleType = {
    daysUTC: {
        friday: boolean;
        monday: boolean;
        saturday: boolean;
        sunday: boolean;
        thursday: boolean;
        tuesday: boolean;
        wednesday: boolean;
    };
    durationSeconds: number;
    enabled: boolean;
    startUTCHour: number;
    startUTCMinute: number;
};
export declare type ScheduleProfileType = {
    enabled: boolean;
    startLocalTime: string;
    weekDays: {
        friday: boolean;
        monday: boolean;
        saturday: boolean;
        sunday: boolean;
        thursday: boolean;
        tuesday: boolean;
        wednesday: boolean;
    };
};
export declare type KelvinType = {
    active: boolean;
    alarms: Array<any>;
    currentActivity: string;
    currentTargetLevel: number;
    level: number;
    phases?: PhaseType[];
    scheduleProfiles: ScheduleProfileType[];
    targetLevels: number[];
};
export declare type DeviceType = {
    deviceId?: string;
    features?: Features[];
    firmwareUpdated?: boolean;
    firmwareUpdating?: boolean;
    firmwareVersion?: string;
    hasWater?: boolean;
    hubInfo?: string;
    lastHeard?: Date | null;
    lastLowWater?: Date | null;
    lastPrime?: Date | null;
    ledBrightnessLevel?: number;
    leftHeatingDuration?: number;
    leftHeatingLevel?: number;
    leftKelvin?: KelvinType;
    leftNowHeating?: boolean;
    leftSchedule?: ScheduleType;
    leftTargetHeatingLevel?: number;
    leftUserId?: string;
    location?: LocationType;
    mattressInfo?: {
        brand?: any | null;
        eightMattress?: any | null;
        firstUsedDate?: any | null;
    };
    needsPriming?: boolean;
    online?: boolean;
    ownerId?: string;
    priming?: boolean;
    rightHeatingDuration?: number;
    rightHeatingLevel?: number;
    rightKelvin?: KelvinType;
    rightNowHeating?: true;
    rightSchedule?: ScheduleType;
    rightTargetHeatingLevel?: 50;
    rightUserId?: string;
    sensorInfo?: {
        connected?: boolean;
        hwRevision?: string;
        label?: string;
        lastConnected?: Date | null;
        partNumber?: string;
        serialNumber?: string;
        sku?: string;
        skuName?: string;
    };
    timezone?: string;
};
export default function validateDevice(device: any): DeviceType;
