export interface IDevice {
    deviceId: string;
    propertyId: string;
    zoneId: string;
    name: string;
    hubId: string[];
    specifications: {
        manufacturer?: string;
        model?: string;
        firmware?: {
            version?: string;
            newVersionAvailable?: boolean;
            newVersion?: string;
            mandatoryUpdate?: boolean;
        };
    };
    protocol: {
        location?: {
            id?: string;
            name?: string;
            city?: string;
        };
        name?: string;
        room?: {
            id?: string;
            name?: string;
        };
        accountId?: string;
    };
    connection: {
        id: string;
        name: string;
    };
    deviceType: {
        id: string;
        type: string;
    };
    status: IStatus;
    isActive: {
        value: boolean;
        lastUpdated: string;
    };
    state?: Record<string, any>;
    metaData?: Record<string, any>;
    createdAt?: Date;
    updatedAt?: Date;
    hubDeviceDetails?: IDevice[];
    capabilities?: Record<string, any>;
    isDeleted?: boolean;
    deletedAt?: Date;
}
export declare class IStatus {
    online: boolean;
    liveStatus?: "ONLINE" | "OFFLINE";
    error?: {
        type?: string;
        message?: string;
        default?: object;
    };
    lastUpdated?: string;
}
export interface IStatusQuery {
    deviceIds?: string[];
    zoneId?: string;
    propertyId?: string;
}
export interface IStatusUpdateRequest {
    query: IStatusQuery;
    status: IStatus;
}
export interface IQueryDevice {
    isDeleted?: boolean;
    zoneId?: string;
    zoneIds?: string[];
    deviceId?: string;
    deviceIds?: string[];
    propertyId?: string;
    hubId?: string;
    deviceType?: string | string[];
    excludeDeviceType?: string | string[];
    connectionId?: string;
}
