export interface Device {
    id: string;
    deviceName: string;
    serialNumber: string;
    macAddress: string;
    ipv4?: string;
    ipv6?: string;
    model?: string;
    deviceType: string;
    status: string;
    siteId?: string;
    siteName?: string;
    softwareVersion?: string;
    partNumber?: string;
    deployment?: string;
    lastModified?: string;
}
export interface DeviceInventory extends Device {
    isProvisioned: boolean;
    persona?: string;
}
export interface DeviceListResponse {
    count: number;
    devices: Device[];
    next?: string;
}
export interface DeviceInventoryResponse {
    count: number;
    devices: DeviceInventory[];
    next?: string;
}
export interface DeviceFilterOptions {
    siteId?: string | string[];
    model?: string | string[];
    status?: string | string[];
    deployment?: string | string[];
    deviceType?: string | string[];
    isProvisioned?: boolean;
    persona?: string | string[];
}
export interface AccessPoint {
    serialNumber: string;
    macAddress: string | null;
    deviceName: string;
    model?: string;
    partNumber?: string;
    deployment?: string;
    role?: string;
    persona?: string;
    softwareVersion?: string;
    ipv4?: string;
    ipv6?: string;
    status?: string;
    uptimeInMillis?: number;
    lastSeenAt?: string;
    siteId: string;
    buildingId?: string;
    floorId?: string;
    siteName?: string;
    clusterName?: string;
    id: string;
    type: string;
}
export interface AccessPointDetail extends AccessPoint {
    manufacturer?: string;
    negotiatedPower?: string;
    bandSelection?: string;
    publicIpv4?: string;
    countryCode?: string;
    mode?: string;
    defaultGateway?: string;
    radios?: AccessPointRadio[];
    ports?: AccessPointPort[];
    wlans?: AccessPointWlan[];
    modem?: AccessPointModem;
}
export interface AccessPointRadio {
    macAddress: string;
    band: string;
    status?: string;
    radioNumber: number;
    mode?: string;
    antenna?: string;
    spatialStream?: string;
    bandwidth?: string;
    channel?: string;
    power?: string;
}
export interface AccessPointPort {
    macAddress: string;
    name: string;
    portIndex?: number;
    status: string;
    vlanMode?: string;
    allowedVlan?: string;
    nativeVlan?: string;
    accessVlan?: string;
    speed?: string;
    duplex?: string;
    connector?: string;
}
export interface AccessPointWlan {
    wlanName?: string;
    security?: string;
    securityLevel?: string;
    bssid: string;
    vlan?: string;
    status?: string;
}
export interface AccessPointModem {
    manufacturer?: string;
    simState?: string;
    status?: string;
    state?: string;
    model?: string;
    imei?: string;
    imsi?: string;
    iccid?: string;
    firmwareVersion?: string;
    accessTechnology?: string;
    bandwidth?: string;
    band?: string;
}
export interface MetricGraphResponse {
    metric: string;
    graph: {
        keys: string[];
        samples: Array<{
            data: number[];
            timestamp: string;
        }>;
    };
    id: string;
    type: string;
}
export interface TopApsByWirelessUsage {
    serialNumber: string;
    deviceName: string;
    totalValue: number;
    units: string;
    id: string;
    type: string;
}
export interface RadioListResponse {
    count: number;
    items: Array<{
        serialNumber: string;
        deviceName: string;
        macAddress: string;
        status: string;
        band: string;
        bandRange?: string;
        channel?: string;
        bandwidth?: string;
        mode?: string;
        radioNumber: number;
        power?: string;
        siteId: string;
        channelUtilization?: string;
        nonWifiInterference?: string;
        noiseFloor?: string;
        errors?: string;
        drops?: string;
        retries?: string;
        channelQuality?: string;
        channelChangeCount?: number;
        powerChangeCount?: number;
        id: string;
        type: string;
    }>;
    total: number;
    offset: number;
}
export interface RadioPerformance {
    serialNumber: string;
    deviceName: string;
    radioNumber: number;
    band: string;
    channel: string;
    bandwidth: string;
    channelUtilization: {
        current: string;
        trends: MetricGraphResponse;
    };
    noiseFloor: {
        current: string;
        trends: MetricGraphResponse;
    };
    channelQuality: {
        current: string;
        trends: MetricGraphResponse;
    };
    frameMetrics: {
        errors: string;
        drops: string;
        retries: string;
        trends: MetricGraphResponse;
    };
    throughput: {
        tx: number;
        rx: number;
        trends: MetricGraphResponse;
    };
}
