import * as interfaces from '../dist_ts_interfaces/index.js';
import type { IRouteConfig } from '@push.rocks/smartproxy';
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
export declare class Route {
    private clientRef;
    routeConfig: IRouteConfig;
    id: string;
    enabled: boolean;
    origin: 'config' | 'email' | 'dns' | 'api';
    createdAt?: number;
    updatedAt?: number;
    get name(): string;
    constructor(clientRef: DcRouterApiClient, data: interfaces.data.IMergedRoute);
    update(changes: Partial<IRouteConfig>): Promise<void>;
    delete(): Promise<void>;
    toggle(enabled: boolean): Promise<void>;
}
export declare class RouteBuilder {
    private clientRef;
    private routeConfig;
    private isEnabled;
    constructor(clientRef: DcRouterApiClient);
    setName(name: string): this;
    setMatch(match: IRouteConfig['match']): this;
    setAction(action: IRouteConfig['action']): this;
    setTls(tls: IRouteConfig['action']['tls']): this;
    setEnabled(enabled: boolean): this;
    save(): Promise<Route>;
}
export declare class RouteManager {
    private clientRef;
    constructor(clientRef: DcRouterApiClient);
    list(): Promise<{
        routes: Route[];
        warnings: interfaces.data.IRouteWarning[];
    }>;
    create(routeConfig: IRouteConfig, enabled?: boolean): Promise<Route>;
    build(): RouteBuilder;
}
