import * as interfaces from '../dist_ts_interfaces/index.js';
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
export declare class RadiusClientManager {
    private clientRef;
    constructor(clientRef: DcRouterApiClient);
    list(): Promise<Array<{
        name: string;
        ipRange: string;
        description?: string;
        enabled: boolean;
    }>>;
    set(client: {
        name: string;
        ipRange: string;
        secret: string;
        description?: string;
        enabled: boolean;
    }): Promise<void>;
    remove(name: string): Promise<void>;
}
export declare class RadiusVlanManager {
    private clientRef;
    constructor(clientRef: DcRouterApiClient);
    list(): Promise<interfaces.requests.IReq_GetVlanMappings['response']>;
    set(mapping: {
        mac: string;
        vlan: number;
        description?: string;
        enabled: boolean;
    }): Promise<void>;
    remove(mac: string): Promise<void>;
    updateConfig(options: {
        defaultVlan?: number;
        allowUnknownMacs?: boolean;
    }): Promise<{
        defaultVlan: number;
        allowUnknownMacs: boolean;
    }>;
    testAssignment(mac: string): Promise<interfaces.requests.IReq_TestVlanAssignment['response']>;
}
export declare class RadiusSessionManager {
    private clientRef;
    constructor(clientRef: DcRouterApiClient);
    list(filter?: {
        username?: string;
        nasIpAddress?: string;
        vlanId?: number;
    }): Promise<interfaces.requests.IReq_GetRadiusSessions['response']>;
    disconnect(sessionId: string, reason?: string): Promise<void>;
}
export declare class RadiusManager {
    private clientRef;
    clients: RadiusClientManager;
    vlans: RadiusVlanManager;
    sessions: RadiusSessionManager;
    constructor(clientRef: DcRouterApiClient);
    getAccountingSummary(startTime: number, endTime: number): Promise<interfaces.requests.IReq_GetRadiusAccountingSummary['response']['summary']>;
    getStatistics(): Promise<interfaces.requests.IReq_GetRadiusStatistics['response']>;
}
