import { z } from 'zod';
import type { ProviderCapability } from '../provider-capability.js';
export declare const DEVICE_PROVIDERS: {
    readonly HOTEK: "hotek";
    readonly DORMAKABA_COMMUNITY: "dormakaba_community";
    readonly LEGIC_CONNECT: "legic_connect";
    readonly AKUVOX: "akuvox";
    readonly AUGUST: "august";
    readonly AVIGILON_ALTA: "avigilon_alta";
    readonly BRIVO: "brivo";
    readonly BUTTERFLYMX: "butterflymx";
    readonly SCHLAGE: "schlage";
    readonly SMARTTHINGS: "smartthings";
    readonly YALE: "yale";
    readonly GENIE: "genie";
    readonly DOORKING: "doorking";
    readonly SALTO: "salto";
    readonly SALTO_KS: "salto_ks";
    readonly LOCKLY: "lockly";
    readonly TTLOCK: "ttlock";
    readonly LINEAR: "linear";
    readonly NOISEAWARE: "noiseaware";
    readonly NUKI: "nuki";
    readonly IGLOO: "igloo";
    readonly KWIKSET: "kwikset";
    readonly MINUT: "minut";
    readonly MY_2N: "my_2n";
    readonly CONTROLBYWEB: "controlbyweb";
    readonly NEST: "nest";
    readonly IGLOOHOME: "igloohome";
    readonly ECOBEE: "ecobee";
    readonly FOUR_SUITES: "four_suites";
    readonly DORMAKABA_ORACODE: "dormakaba_oracode";
    readonly PTI: "pti";
    readonly WYZE: "wyze";
    readonly SEAM_PASSPORT: "seam_passport";
    readonly VISIONLINE: "visionline";
    readonly ASSA_ABLOY_CREDENTIAL_SERVICE: "assa_abloy_credential_service";
    readonly TEDEE: "tedee";
    readonly HONEYWELL_RESIDEO: "honeywell_resideo";
    readonly LATCH: "latch";
    readonly AKILES: "akiles";
    readonly VOSTIO: "assa_abloy_vostio";
    readonly ASSA_ABLOY_VOSTIO_CREDENTIAL_SERVICE: "assa_abloy_vostio_credential_service";
    readonly TADO: "tado";
    readonly SALTO_SPACE: "salto_space";
    readonly SENSI: "sensi";
    readonly KEYNEST: "keynest";
    readonly KORELOCK: "korelock";
    readonly DORMAKABA_AMBIANCE: "dormakaba_ambiance";
    readonly ULTRALOQ: "ultraloq";
    readonly RING: "ring";
};
export type DeviceProviderName = (typeof DEVICE_PROVIDERS)[keyof typeof DEVICE_PROVIDERS];
export declare const ALL_DEVICE_PROVIDERS: [
    DeviceProviderName,
    ...DeviceProviderName[]
];
export type ProviderCategory = keyof typeof PROVIDER_CATEGORY_MAP;
export declare const PROVIDER_CATEGORY_MAP: {
    readonly stable: readonly ["august", "brivo", "schlage", "smartthings", "yale", "nuki", "salto_ks", "salto_space", "minut", "my_2n", "kwikset", "ttlock", "noiseaware", "igloohome", "ecobee", "lockly", "wyze", "nest", "tedee", "honeywell_resideo", "visionline", "assa_abloy_credential_service", "dormakaba_ambiance", "latch", "akiles", "sensi", "assa_abloy_vostio", "avigilon_alta", "keynest", "hotek", "ultraloq", "dormakaba_oracode"];
    readonly consumer_smartlocks: readonly ["akiles", "august", "schlage", "yale", "smartthings", "nuki", "ttlock", "kwikset", "igloohome", "wyze", "lockly", "tedee", "ultraloq", "dormakaba_oracode"];
    readonly beta: readonly ["korelock", "ring"];
    readonly thermostats: readonly ["ecobee", "nest", "sensi", "honeywell_resideo"];
    readonly noise_sensors: readonly ["minut", "noiseaware"];
    readonly access_control_systems: readonly ["visionline", "assa_abloy_credential_service", "latch", "salto_ks", "assa_abloy_vostio", "salto_space", "dormakaba_ambiance", "dormakaba_community", "legic_connect", "hotek"];
    readonly cameras: readonly ["ring"];
    readonly internal_beta: [DeviceProviderName, ...DeviceProviderName[]];
};
export declare const PROVIDER_CATEGORIES: [ProviderCategory, ...ProviderCategory[]];
export declare const PUBLIC_PROVIDER_CATEGORIES: typeof PROVIDER_CATEGORIES;
export declare const device_provider: z.ZodObject<{
    device_provider_name: z.ZodEnum<[DeviceProviderName, ...DeviceProviderName[]]>;
    display_name: z.ZodString;
    image_url: z.ZodString;
    provider_categories: z.ZodArray<z.ZodEnum<["stable" | "consumer_smartlocks" | "beta" | "thermostats" | "noise_sensors" | "access_control_systems" | "cameras" | "internal_beta", ...("stable" | "consumer_smartlocks" | "beta" | "thermostats" | "noise_sensors" | "access_control_systems" | "cameras" | "internal_beta")[]]>, "many">;
} & {
    can_remotely_unlock: z.ZodOptional<z.ZodBoolean>;
    can_remotely_lock: z.ZodOptional<z.ZodBoolean>;
    can_program_offline_access_codes: z.ZodOptional<z.ZodBoolean>;
    can_program_online_access_codes: z.ZodOptional<z.ZodBoolean>;
    can_hvac_heat: z.ZodOptional<z.ZodBoolean>;
    can_hvac_cool: z.ZodOptional<z.ZodBoolean>;
    can_hvac_heat_cool: z.ZodOptional<z.ZodBoolean>;
    can_turn_off_hvac: z.ZodOptional<z.ZodBoolean>;
    can_simulate_removal: z.ZodOptional<z.ZodBoolean>;
    can_simulate_connection: z.ZodOptional<z.ZodBoolean>;
    can_simulate_disconnection: z.ZodOptional<z.ZodBoolean>;
    can_unlock_with_code: z.ZodOptional<z.ZodBoolean>;
    can_run_thermostat_programs: z.ZodOptional<z.ZodBoolean>;
    can_program_thermostat_programs_as_weekday_weekend: z.ZodOptional<z.ZodBoolean>;
    can_program_thermostat_programs_as_different_each_day: z.ZodOptional<z.ZodBoolean>;
    can_program_thermostat_programs_as_same_each_day: z.ZodOptional<z.ZodBoolean>;
    can_simulate_hub_connection: z.ZodOptional<z.ZodBoolean>;
    can_simulate_hub_disconnection: z.ZodOptional<z.ZodBoolean>;
    can_simulate_paid_subscription: z.ZodOptional<z.ZodBoolean>;
    can_configure_auto_lock: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    display_name: string;
    image_url: string;
    device_provider_name: DeviceProviderName;
    provider_categories: ("stable" | "consumer_smartlocks" | "beta" | "thermostats" | "noise_sensors" | "access_control_systems" | "cameras" | "internal_beta")[];
    can_remotely_unlock?: boolean | undefined;
    can_remotely_lock?: boolean | undefined;
    can_program_offline_access_codes?: boolean | undefined;
    can_program_online_access_codes?: boolean | undefined;
    can_hvac_heat?: boolean | undefined;
    can_hvac_cool?: boolean | undefined;
    can_hvac_heat_cool?: boolean | undefined;
    can_turn_off_hvac?: boolean | undefined;
    can_simulate_removal?: boolean | undefined;
    can_simulate_connection?: boolean | undefined;
    can_simulate_disconnection?: boolean | undefined;
    can_unlock_with_code?: boolean | undefined;
    can_run_thermostat_programs?: boolean | undefined;
    can_program_thermostat_programs_as_weekday_weekend?: boolean | undefined;
    can_program_thermostat_programs_as_different_each_day?: boolean | undefined;
    can_program_thermostat_programs_as_same_each_day?: boolean | undefined;
    can_simulate_hub_connection?: boolean | undefined;
    can_simulate_hub_disconnection?: boolean | undefined;
    can_simulate_paid_subscription?: boolean | undefined;
    can_configure_auto_lock?: boolean | undefined;
}, {
    display_name: string;
    image_url: string;
    device_provider_name: DeviceProviderName;
    provider_categories: ("stable" | "consumer_smartlocks" | "beta" | "thermostats" | "noise_sensors" | "access_control_systems" | "cameras" | "internal_beta")[];
    can_remotely_unlock?: boolean | undefined;
    can_remotely_lock?: boolean | undefined;
    can_program_offline_access_codes?: boolean | undefined;
    can_program_online_access_codes?: boolean | undefined;
    can_hvac_heat?: boolean | undefined;
    can_hvac_cool?: boolean | undefined;
    can_hvac_heat_cool?: boolean | undefined;
    can_turn_off_hvac?: boolean | undefined;
    can_simulate_removal?: boolean | undefined;
    can_simulate_connection?: boolean | undefined;
    can_simulate_disconnection?: boolean | undefined;
    can_unlock_with_code?: boolean | undefined;
    can_run_thermostat_programs?: boolean | undefined;
    can_program_thermostat_programs_as_weekday_weekend?: boolean | undefined;
    can_program_thermostat_programs_as_different_each_day?: boolean | undefined;
    can_program_thermostat_programs_as_same_each_day?: boolean | undefined;
    can_simulate_hub_connection?: boolean | undefined;
    can_simulate_hub_disconnection?: boolean | undefined;
    can_simulate_paid_subscription?: boolean | undefined;
    can_configure_auto_lock?: boolean | undefined;
}>;
export type DeviceProvider = z.infer<typeof device_provider>;
export declare const PROVIDER_CATEGORY_CAPABILITY_MAP: Record<ProviderCategory, ProviderCapability[]>;
