import * as plugins from './plugins.js';
import * as interfaces from '../dist_ts_interfaces/index.js';
import { RouteManager } from './classes.route.js';
import { CertificateManager } from './classes.certificate.js';
import { ApiTokenManager } from './classes.apitoken.js';
import { RemoteIngressManager } from './classes.remoteingress.js';
import { StatsManager } from './classes.stats.js';
import { ConfigManager } from './classes.config.js';
import { LogManager } from './classes.logs.js';
import { EmailManager } from './classes.email.js';
import { RadiusManager } from './classes.radius.js';
import { GatewayClientApi } from './classes.gatewayclient.js';
export interface IDcRouterApiClientOptions {
    baseUrl: string;
    apiToken?: string;
}
export declare class DcRouterApiClient {
    baseUrl: string;
    apiToken?: string;
    identity?: interfaces.data.IIdentity;
    routes: RouteManager;
    certificates: CertificateManager;
    apiTokens: ApiTokenManager;
    remoteIngress: RemoteIngressManager;
    stats: StatsManager;
    config: ConfigManager;
    logs: LogManager;
    emails: EmailManager;
    radius: RadiusManager;
    gatewayClients: GatewayClientApi;
    constructor(options: IDcRouterApiClientOptions);
    login(username: string, password: string): Promise<interfaces.data.IIdentity>;
    logout(): Promise<void>;
    verifyIdentity(): Promise<{
        valid: boolean;
        identity?: interfaces.data.IIdentity;
    }>;
    request<T extends plugins.typedrequestInterfaces.ITypedRequest>(method: string, requestData: T['request']): Promise<T['response']>;
    /**
     * Build a request payload with identity and optional API token auto-injected.
     */
    buildRequestPayload(extra?: Record<string, any>): Record<string, any>;
}
