import { Characteristic, Service, API, WithUUID, Perms } from 'homebridge';
import { HttpClientCharacteristic, HttpClientService } from './Interfaces';
export declare function listKnownServices(api: API, parent: SupportedServices): WithUUID<new () => Service>[];
export declare function listKnownCharacteristics(api: API, parent: SupportedServices): WithUUID<new () => Characteristic>[];
export interface ServiceItem {
    id: string;
    cls: WithUUID<new () => Service>;
}
export interface CharacteristicItem {
    id: string;
    cls: WithUUID<new () => Characteristic>;
}
export declare function classFromID(list: (ServiceItem | CharacteristicItem)[], id: string): WithUUID<new () => Service> | WithUUID<new () => Characteristic> | undefined;
export declare class SupportedServices {
    private api;
    private _KnownServiceMap;
    private _KnownCharMap;
    readonly EveAirQuality: WithUUID<new () => Characteristic>;
    readonly FakeGatoService: WithUUID<new () => Service>;
    readonly NanoleafColorTemperature: WithUUID<new () => Characteristic>;
    readonly NanoleafCustomEventNotifications: WithUUID<new () => Characteristic>;
    readonly CloudSyncService: WithUUID<new () => Service>;
    readonly CloudProvisioningHashString: WithUUID<new () => Characteristic>;
    readonly CloudHomeSync: WithUUID<new () => Characteristic>;
    readonly CloudHomeSyncDescription: WithUUID<new () => Characteristic>;
    readonly SyncState: WithUUID<new () => Characteristic>;
    readonly RestoreFromCloud: WithUUID<new () => Characteristic>;
    readonly AnimationService: WithUUID<new () => Service>;
    readonly AnimationSelect: WithUUID<new () => Characteristic>;
    readonly AnimationRead: WithUUID<new () => Characteristic>;
    readonly AnimationWrite: WithUUID<new () => Characteristic>;
    readonly AnimationList: WithUUID<new () => Characteristic>;
    readonly AnimationPlayList: WithUUID<new () => Characteristic>;
    readonly RythmActive: WithUUID<new () => Characteristic>;
    readonly RythmConnected: WithUUID<new () => Characteristic>;
    readonly RythmMode: WithUUID<new () => Characteristic>;
    readonly RythmAuxAvailable: WithUUID<new () => Characteristic>;
    readonly LayoutDetectionService: WithUUID<new () => Service>;
    readonly LayoutDetectionButton: WithUUID<new () => Characteristic>;
    readonly LayoutData: WithUUID<new () => Characteristic>;
    readonly GlobalOrientation: WithUUID<new () => Characteristic>;
    readonly ProductWarnings: WithUUID<new () => Characteristic>;
    readonly FirmwareUpdateService: WithUUID<new () => Service>;
    readonly NewFirmwareVersion: WithUUID<new () => Characteristic>;
    readonly FirmwareAvailability: WithUUID<new () => Characteristic>;
    readonly InstallFirmwareUpdate: WithUUID<new () => Characteristic>;
    constructor(api: API);
    get KnownServiceMap(): ServiceItem[];
    get KnownCharMap(): CharacteristicItem[];
    isID(needle: string, haystack: string): boolean;
    toPerm(inp: string[]): Perms[];
    classForService(type: string, source: HttpClientService | undefined): any;
    copyCharacteristic(type: string, source: HttpClientCharacteristic): WithUUID<new () => Characteristic>;
    classForChar(type: string, source: HttpClientCharacteristic | undefined): any;
}
//# sourceMappingURL=SupportedDevices.d.ts.map