import type { PlatformConfig } from 'homebridge';
/**
 * This is the name of the platform that users will use to register the plugin in the Homebridge config.json
 */
export declare const PLATFORM_NAME = "Resideo";
/**
 * This must match the name of your plugin as defined the package.json
 */
export declare const PLUGIN_NAME = "@homebridge-plugins/homebridge-resideo";
/**
 * This is the main url used to access Resideo API
 */
export declare const AuthorizeURL = "https://api.honeywell.com/oauth2/authorize?";
/**
 * This is the main url used to access Resideo API
 */
export declare const TokenURL = "https://api.honeywell.com/oauth2/token";
/**
 * This is the main url used to access Resideo API
 */
export declare const LocationURL = "https://api.honeywell.com/v2/locations";
/**
 * This is the main url used to access Resideo API
 */
export declare const DeviceURL = "https://api.honeywell.com/v2/devices";
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' | 'HEAD';
export interface ResideoPlatformConfig extends PlatformConfig {
    credentials?: credentials;
    options?: options | Record<string, never>;
    callbackUrl?: string;
    port?: string;
}
export interface credentials {
    accessToken?: string;
    refreshToken?: string;
    consumerKey?: string;
    consumerSecret?: string;
}
export interface options {
    preferMatter?: boolean;
    enableMatter?: boolean;
    allowInvalidCharacters?: boolean;
    convertUnits?: ConvertUnitsOption;
    logging?: string;
    maxRetries?: number;
    delayBetweenRetries?: number;
    refreshRate?: number;
    updateRate?: number;
    pushRate?: number;
    devices?: devicesConfig[];
}
export interface devicesConfig extends resideoDevice {
    deviceID: string | number;
    deviceClass: string;
    configDeviceName: string;
    hide_device?: boolean;
    thermostat?: thermostat;
    valve?: valve;
    leaksensor?: leaksensor;
    external?: boolean;
    logging?: string;
    refreshRate?: number;
    updateRate?: number;
    pushRate?: number;
    maxRetries?: number;
    delayBetweenRetries?: number;
    retry?: boolean;
    firmware?: string;
}
export interface thermostat {
    show_auto?: boolean;
    hide_fan?: boolean;
    fan_mode_mapping?: fanModeMapping;
    hide_humidity?: boolean;
    thermostatSetpointStatus?: string;
    statefulStatus?: boolean;
    roomsensor?: roomsensor;
    roompriority?: roompriority;
}
export type ConvertUnitsOption = '' | 'fahrenheit' | 'celsius';
export type ResideoFanMode = 'Auto' | 'On' | 'Circulate';
export interface fanModeMapping {
    auto_mode?: ResideoFanMode;
    on_mode?: ResideoFanMode;
    off_mode?: ResideoFanMode;
}
export interface leaksensor {
    hide_humidity?: boolean;
    hide_temperature?: boolean;
    hide_leak?: boolean;
}
export interface roomsensor {
    hide_roomsensor?: boolean;
    hide_temperature?: boolean;
    hide_occupancy?: boolean;
    hide_motion?: boolean;
    hide_humidity?: boolean;
    logging?: string;
    refreshRate?: number;
    pushRate?: number;
}
export interface roompriority {
    deviceType?: string;
    priorityType?: string;
    logging?: string;
    refreshRate?: number;
    pushRate?: number;
}
export interface valve {
    valveType?: number;
}
export interface modes {
    Off: number;
    Heat: number;
    Cool: number;
    Auto: number;
}
export interface holdModes {
    NoHold: number;
    TemporaryHold: number;
    PermanentHold: number;
}
export interface payload {
    mode?: string;
    heatSetpoint?: number;
    coolSetpoint?: number;
    thermostatSetpointStatus?: string;
    nextPeriodTime?: string;
    autoChangeoverActive?: boolean;
    thermostatSetpoint?: number;
    unit?: string;
    state?: string;
}
export type locations = location[];
export interface location {
    locationID: string | number;
    name: string;
    devices: resideoDevice[];
}
export interface resideoDevice {
    deviceID: string | number;
    deviceClass: string;
    deviceModel: string;
    userDefinedDeviceName: string;
    firmware?: string;
    thermostatVersion?: string;
    external?: boolean;
    groups?: T9groups[];
    thermostat?: {
        roompriority?: {
            deviceType?: string;
        };
        roomsensor?: {
            hide_roomsensor?: boolean;
        };
    };
    inBuiltSensorState?: inBuiltSensorState;
    settings?: Settings;
    deviceType: string;
    name?: string;
    isAlive: boolean;
    priorityType?: string;
    units?: string;
    indoorTemperature?: number;
    allowedModes?: string[];
    minHeatSetpoint?: number;
    maxHeatSetpoint?: number;
    minCoolSetpoint?: number;
    maxCoolSetpoint?: number;
    changeableValues?: ChangeableValues;
    operationStatus?: OperationStatus;
    indoorHumidity?: number;
    displayedOutdoorHumidity?: number;
    scheduleStatus?: string;
    allowedTimeIncrements?: number;
    isUpgrading?: boolean;
    isProvisioned?: boolean;
    macID?: string;
    dataSyncStatus?: string;
    outdoorTemperature?: number;
    deadband?: number;
    hasDualSetpointStatus?: boolean;
    parentDeviceId?: number;
    service: Service;
    deviceSettings: Record<string, unknown>;
    firmwareVersion?: string;
    vacationHold?: VacationHold;
    currentSchedulePeriod?: CurrentSchedulePeriod;
    scheduleCapabilities?: ScheduleCapabilities;
    scheduleType?: ScheduleType;
    changeSource?: ChangeSource;
    partnerInfo?: PartnerInfo;
    deviceRegistrationDate?: Date;
    indoorHumidityStatus?: string;
    waterPresent: boolean;
    currentSensorReadings: CurrentSensorReadings;
    batteryRemaining: number;
    isRegistered: boolean;
    hasDeviceCheckedIn: boolean;
    isDeviceOffline: boolean;
    deviceMac: string;
    dataSyncInfo: dataSyncInfo;
    lastCheckin: Date;
    actuatorValve: actuatorValve;
    daylightSavingsInfo: daylightSavingsInfo;
    maintenance: maintenance;
}
export interface T9groups {
    id: number;
}
export interface inBuiltSensorState {
    roomId: number;
    roomName: string;
}
export interface Settings {
    homeSetPoints?: HomeSetPoints;
    awaySetPoints?: AwaySetPoints;
    fan: Fan;
    temperatureMode?: TemperatureMode;
    specialMode?: SpecialMode;
    hardwareSettings?: HardwareSettings;
    devicePairingEnabled?: boolean;
}
export interface ChangeableValues {
    mode: string;
    autoChangeoverActive?: boolean;
    heatSetpoint: number;
    coolSetpoint: number;
    thermostatSetpointStatus?: string;
    nextPeriodTime?: string;
    endHeatSetpoint?: number;
    endCoolSetpoint?: number;
    heatCoolMode: string;
    emergencyHeatActive?: boolean;
}
export interface OperationStatus {
    mode: string;
    fanRequest?: boolean;
    circulationFanRequest?: boolean;
}
export interface Service {
    mode: string;
}
export interface AwaySetPoints {
    awayHeatSP: number;
    awayCoolSP: number;
    smartCoolSP: number;
    smartHeatSP: number;
    useAutoSmart: boolean;
    units: string;
}
export interface HomeSetPoints {
    homeHeatSP: number;
    homeCoolSP: number;
    units: string;
}
export interface TemperatureMode {
    feelsLike?: boolean;
    air: boolean;
}
export interface SpecialMode {
    autoChangeoverActive: boolean;
    emergencyHeatActive?: boolean;
}
export interface Fan {
    allowedModes: string[];
    changeableValues: FanChangeableValues;
    fanRunning: boolean;
    allowedSpeeds?: AllowedSpeed[];
}
export interface FanChangeableValues {
    mode: string;
}
export interface AllowedSpeed {
    item: string;
    value: Value;
}
export interface Value {
    speed?: number;
    mode: string;
}
export interface VacationHold {
    enabled: boolean;
}
export interface CurrentSchedulePeriod {
    day: string;
    period: string;
}
export interface ScheduleCapabilities {
    availableScheduleTypes: string[];
    schedulableFan: boolean;
}
export interface ScheduleType {
    scheduleType: string;
    scheduleSubType: string;
}
export interface ChangeSource {
    by: string;
    name: string;
}
export interface HardwareSettings {
    brightness: number;
    maxBrightness: number;
}
export interface PartnerInfo {
    singleOrMultiODUConfiguration: number;
    parentDeviceModelId: number;
    parentDeviceBrandId: number;
    oduName: string;
}
export interface DeviceSettings {
    temp: Temp;
    humidity: Humidity;
    userDefinedName: string;
    buzzerMuted: boolean;
    checkinPeriod: number;
    currentSensorReadPeriod: number;
}
export interface Humidity {
    high: Record<string, unknown>;
    low: Record<string, unknown>;
}
export interface CurrentSensorReadings {
    temperature: number;
    humidity: number;
}
export interface Temp {
    high: Record<string, unknown>;
    low: Record<string, unknown>;
}
export interface sensorAccessory {
    accessoryId: number;
    accessoryAttribute: accessoryAttribute;
    accessoryValue: accessoryValue;
    roomId: number;
}
export interface accessoryAttribute {
    type: string;
    connectionMethod: string;
    name: string;
    model: string;
    serialNumber: string;
    softwareRevision: string;
    hardwareRevision: string;
}
export interface accessoryValue {
    coolSetpoint: number;
    heatSetpoint: number;
    indoorHumidity: number;
    indoorTemperature: number;
    motionDet: boolean;
    occupancyDet: boolean;
    excludeTemp: boolean;
    excludeMotion: boolean;
    pressure: number;
    occupancyTimeout: number;
    status: string;
    batteryStatus: string;
    rssiAverage: number;
    occupancySensitivity: string;
}
export interface roomPriorityStatus {
    deviceId: string;
    status: string;
    currentPriority: CurrentPriority;
}
export interface CurrentPriority {
    priorityType: string;
    selectedRooms: Record<string, unknown>;
    rooms: PriorityRooms[];
}
export interface PriorityRooms {
    rooms: PriorityRoom;
}
export interface PriorityRoom {
    id: number;
    roomName: string;
    roomAvgTemp: number;
    roomAvgHumidity: number;
    overallMotion: boolean;
    accessories: Accessory[];
}
export interface Accessory {
    id: number;
    type: string;
    excludeTemp: boolean;
    excludeMotion: boolean;
    temperature: number;
    status: string;
    detectMotion: boolean;
}
export interface dataSyncInfo {
    state: string;
    transactionId: string;
}
export interface actuatorValve {
    commandSource: string;
    runningTime: number;
    valveStatus: string;
    motorCycles: number;
    motorCurrentAverage: number;
    motorCurrentMax: number;
    deviceTemperature: number;
    lastAntiScaleTime: Date;
    leakStatus: string;
    timeValveChanged: Date;
}
export interface daylightSavingsInfo {
    isDaylightSaving: boolean;
    nextOffsetChange: Date;
}
export interface maintenance {
    antiScaleSettings: string;
    antiScaleDOWSettings: string;
    antiScaleDOMSettings: number;
    antiScaleTimeSettings: string;
}
export interface fanStatus {
    changeableValues: {
        mode: string;
    };
}
//# sourceMappingURL=settings.d.ts.map