/**
 * VLANs & Networks API Types
 * Based on Aruba Central Next Gen Configuration API
 * Reference: https://developer.arubanetworks.com/new-central-config/reference
 */
export interface VRRPProfile {
    name: string;
    vrid?: number;
    priority?: number;
    preempt?: boolean;
    track_interface?: string[];
    advertisement_interval?: number;
    virtual_ip_address?: string;
}
export interface VRRPInterfaceProfile {
    interface_name: string;
    vrid: number;
    priority?: number;
    preempt?: boolean;
    track_interface?: string[];
    advertisement_interval?: number;
    virtual_ip_address: string;
}
export interface MVRPProfile {
    name: string;
    enabled?: boolean;
    join_time?: number;
    leave_time?: number;
    leave_all_time?: number;
}
export interface SmartlinkProfile {
    name: string;
    group_id?: number;
    master_port?: string;
    slave_port?: string;
    preemption_mode?: 'forced' | 'bandwidth' | 'none';
    preemption_delay?: number;
}
export interface STPProfile {
    name: string;
    mode?: 'mstp' | 'rstp' | 'stp';
    priority?: number;
    hello_time?: number;
    forward_delay?: number;
    max_age?: number;
    bpdu_guard?: boolean;
    bpdu_filter?: boolean;
    root_guard?: boolean;
}
export interface Layer2VLAN {
    vlan_id: number;
    vlan_name?: string;
    description?: string;
    admin_state?: 'up' | 'down';
    voice_vlan?: boolean;
    tagged_ports?: string[];
    untagged_ports?: string[];
}
export interface VLANRange {
    start_vlan_id: number;
    end_vlan_id: number;
    vlan_name_prefix?: string;
    description?: string;
}
export interface VLANInterface {
    vlan_id: number;
    interface_name?: string;
    ip_address?: string;
    subnet_mask?: string;
    description?: string;
    admin_state?: 'up' | 'down';
    ipv4_address?: string;
    ipv4_mask?: string;
    ipv6_address?: string;
    ipv6_prefix_length?: number;
}
export interface LoopProtectProfile {
    name: string;
    enabled?: boolean;
    transmit_interval?: number;
    shutdown_time?: number;
    port_disable_duration?: number;
    vlan_list?: number[];
}
export interface NamedVLAN {
    name: string;
    vlan_ids?: number[];
    description?: string;
    vlan_group?: boolean;
}
export interface VLANResponse<T> {
    data?: T;
    items?: T[];
    count?: number;
    total?: number;
    message?: string;
    code?: string;
    status?: string;
}
export interface VLANQueryParams {
    limit?: number;
    offset?: number;
    filter?: string;
    search?: string;
    sort?: string;
    group?: string;
}
