export type ApplianceId = string;
export type ApplianceStatus = 'enabled' | 'disabled';
export type ConnectionState = 'Connected' | 'Disconnected';
export interface Appliance {
    applianceId: ApplianceId;
    applianceName: string;
    applianceType: string;
    created: string;
}
export type Appliances = Appliance[];
export interface ApplianceInfoDTO {
    serialNumber: string;
    pnc: string;
    brand: string;
    deviceType: string;
    model: string;
    variant: string;
    colour: string;
}
export type CapabilityAccess = 'read' | 'readwrite' | 'write' | 'constant';
export type CapabilityType = 'string' | 'number' | 'int' | 'boolean' | 'complex' | 'temperature' | 'alert';
export type CapabilityValue = string | number | boolean;
export interface CapabilityValues {
    [index: string]: object;
}
export type ConditionOperand = string | CapabilityValue | object;
export type ConditionOperator = 'eq' | 'gt' | 'ne' | 'lt' | 'ge' | 'le' | 'and' | 'or';
export interface TriggerCondition {
    operand_1: ConditionOperand;
    operand_2: ConditionOperand;
    operator: ConditionOperator;
}
export interface TriggerAction {
    [index: string]: object;
}
export interface CapabilityTrigger {
    condition: TriggerCondition;
    action: TriggerAction;
}
export interface ApplianceCapabilityPropertiesBase {
    access: CapabilityAccess;
    type: CapabilityType;
    default?: CapabilityValue;
    disabled?: boolean;
    schedulable?: boolean;
    triggers?: CapabilityTrigger[];
}
export interface ApplianceCapabilityPropertiesNumber {
    access: CapabilityAccess;
    type: 'number' | 'int' | 'temperature';
    default?: number;
    disabled?: boolean;
    min?: number;
    max?: number;
    step?: number;
}
export interface ApplianceCapabilityPropertiesString {
    access: CapabilityAccess;
    type: 'string' | 'alert';
    default?: string;
    disabled?: boolean;
    values?: CapabilityValues;
}
export type ApplianceCapabilityProperties = ApplianceCapabilityPropertiesBase | ApplianceCapabilityPropertiesNumber | ApplianceCapabilityPropertiesString;
export interface ApplianceCapabilities {
    [index: string]: ApplianceCapabilities | ApplianceCapabilityProperties;
}
export interface ApplianceInfo {
    applianceInfo: ApplianceInfoDTO;
    capabilities: ApplianceCapabilities;
}
export interface ApplianceStateProperties {
    reported: object;
}
export interface ApplianceState {
    applianceId: ApplianceId;
    connectionState: ConnectionState;
    status: ApplianceStatus;
    properties: ApplianceStateProperties;
}
export type Command = object;
export interface ErrorResponse {
    message: string;
    error?: string;
    detail?: string;
}
//# sourceMappingURL=aegapi-types.d.ts.map