/**
 * Configuration API Types
 * Based on Aruba Central Next Gen Configuration API
 * Reference: https://developer.arubanetworks.com/new-central-config/reference
 */
export interface Site {
    id?: string;
    name: string;
    address?: string;
    city?: string;
    state?: string;
    zipcode?: string;
    country?: string;
    latitude?: number;
    longitude?: number;
    tags?: string[];
}
export interface SiteCollection {
    id?: string;
    name: string;
    description?: string;
    site_ids?: string[];
}
export interface DeviceGroup {
    group: string;
    group_properties?: {
        AOSVersion?: string;
        Architecture?: string;
        MonitorOnlySwitch?: boolean;
    };
}
export interface HierarchyNode {
    node_id?: string;
    node_name: string;
    node_type: string;
    parent_id?: string;
    children?: HierarchyNode[];
}
export interface APSystemProfile {
    profile_name: string;
    enet_mgmt_vlan?: number;
    dns_server?: string;
    ntp_server?: string;
    timezone?: string;
    ssh_state?: 'enabled' | 'disabled';
    telnet_state?: 'enabled' | 'disabled';
    usb_port_state?: 'enabled' | 'disabled';
    local_mgmt_state?: 'enabled' | 'disabled';
    ap_console_timeout?: number;
}
export interface AllowedAP {
    mac_address: string;
    serial_number?: string;
    ap_group?: string;
}
export interface DHCPPool {
    pool_name: string;
    pool_start_ip: string;
    pool_end_ip: string;
    subnet_mask: string;
    default_router?: string;
    dns_server?: string[];
    lease_time?: number;
    domain_name?: string;
}
export interface DHCPRelay {
    server_address: string[];
    option_82?: boolean;
}
export interface VLANInterface {
    vlan_id: number;
    interface_name?: string;
    ip_address?: string;
    subnet_mask?: string;
    description?: string;
    admin_state?: 'up' | 'down';
}
export interface CaptivePortal {
    profile_name: string;
    url: string;
    port?: number;
    use_https?: boolean;
    auth_type?: string;
}
export interface VRRP {
    vrid: number;
    priority?: number;
    preempt?: boolean;
    track_interface?: string[];
}
export interface ConfigurationResponse<T> {
    data?: T;
    count?: number;
    total?: number;
    message?: string;
    error?: string;
}
export interface PaginationParams {
    offset?: number;
    limit?: number;
}
export interface CommonQueryParams extends PaginationParams {
    filter?: string;
    sort?: string;
    order?: 'asc' | 'desc';
}
