import type { COUNTRY_CODE_TO_CONTINENT_CODE } from './constants';
export type Capabilities = 'ACLP Logs Datacenter LKE-E' | 'Backups' | 'Bare Metal' | 'Block Storage' | 'Block Storage Encryption' | 'Block Storage Migrations' | 'Cloud Firewall' | 'Disk Encryption' | 'Distributed Plans' | 'GPU Linodes' | 'Kubernetes' | 'Kubernetes Enterprise' | 'LA Disk Encryption' | 'Linode Interfaces' | 'Linodes' | 'Maintenance Policy' | 'Managed Databases' | 'Metadata' | 'NETINT Quadra T1U' | 'Network LoadBalancer' | 'NodeBalancers' | 'Object Storage' | 'Placement Group' | 'Premium Plans' | 'StackScripts' | 'Vlans' | 'VPC Dual Stack' | 'VPCs';
export interface MonitoringCapabilities {
    alerts: Capabilities[];
    metrics: Capabilities[];
}
export interface DNSResolvers {
    ipv4: string;
    ipv6: string;
}
export type RegionStatus = 'ok' | 'outage';
export type RegionSite = 'core' | 'distributed';
export interface Region {
    capabilities: Capabilities[];
    country: Country;
    id: string;
    label: string;
    /**
     * CloudPulse monitoring capabilities that are available in the region.
     *
     * **Upcoming Feature Notice:** this property may not be available to all customers
     * and may change in subsequent releases.
     */
    monitors?: MonitoringCapabilities;
    placement_group_limits: {
        maximum_linodes_per_pg: number;
        maximum_pgs_per_customer: null | number;
    };
    resolvers: DNSResolvers;
    site_type: RegionSite;
    status: RegionStatus;
}
export interface RegionAvailability {
    available: boolean;
    plan: string;
    region: string;
}
export interface RegionVPCAvailability {
    available: boolean;
    available_ipv6_prefix_lengths: number[];
    region: string;
}
type CountryCode = keyof typeof COUNTRY_CODE_TO_CONTINENT_CODE;
export type Country = Lowercase<CountryCode>;
export {};
//# sourceMappingURL=types.d.ts.map