/**
 * A registered VPN client (secrets excluded from API responses).
 */
export interface IVpnClient {
    clientId: string;
    enabled: boolean;
    /** IDs of TargetProfiles assigned to this client */
    targetProfileIds?: string[];
    description?: string;
    assignedIp?: string;
    createdAt: number;
    updatedAt: number;
    expiresAt?: string;
    destinationAllowList?: string[];
    destinationBlockList?: string[];
    useHostIp?: boolean;
    useDhcp?: boolean;
    staticIp?: string;
    forceVlan?: boolean;
    vlanId?: number;
}
/**
 * VPN server status.
 */
export interface IVpnServerStatus {
    running: boolean;
    subnet: string;
    wgListenPort: number;
    serverPublicKeys: {
        noisePublicKey: string;
        wgPublicKey: string;
    } | null;
    registeredClients: number;
    connectedClients: number;
}
/**
 * A currently connected VPN client (runtime info from the daemon).
 */
export interface IVpnConnectedClient {
    clientId: string;
    assignedIp: string;
    connectedSince: string;
    bytesSent: number;
    bytesReceived: number;
    transport: string;
    /** Real client IP:port reported by the VPN transport, when available. */
    remoteAddr?: string;
    /** Parsed real client IP reported by the VPN transport, when available. */
    sourceIp?: string;
}
/**
 * VPN client telemetry data.
 */
export interface IVpnClientTelemetry {
    clientId: string;
    assignedIp: string;
    bytesSent: number;
    bytesReceived: number;
    packetsDropped: number;
    bytesDropped: number;
    lastKeepaliveAt?: string;
    keepalivesReceived: number;
    rateLimitBytesPerSec?: number;
    burstBytes?: number;
}
