import * as interfaces from '../dist_ts_interfaces/index.js';
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
export declare class RemoteIngress {
    private clientRef;
    id: string;
    name: string;
    secret: string;
    listenPorts: number[];
    listenPortsUdp?: number[];
    enabled: boolean;
    autoDerivePorts: boolean;
    tags?: string[];
    createdAt: number;
    updatedAt: number;
    effectiveListenPorts?: number[];
    effectiveListenPortsUdp?: number[];
    manualPorts?: number[];
    derivedPorts?: number[];
    constructor(clientRef: DcRouterApiClient, data: interfaces.data.IRemoteIngress);
    update(changes: {
        name?: string;
        listenPorts?: number[];
        autoDerivePorts?: boolean;
        enabled?: boolean;
        tags?: string[];
    }): Promise<void>;
    delete(): Promise<void>;
    regenerateSecret(): Promise<string>;
    getConnectionToken(hubHost?: string): Promise<string | undefined>;
}
export declare class RemoteIngressBuilder {
    private clientRef;
    private edgeName;
    private edgeListenPorts?;
    private edgeAutoDerivePorts?;
    private edgeTags?;
    constructor(clientRef: DcRouterApiClient);
    setName(name: string): this;
    setListenPorts(ports: number[]): this;
    setAutoDerivePorts(auto: boolean): this;
    setTags(tags: string[]): this;
    save(): Promise<RemoteIngress>;
}
export declare class RemoteIngressManager {
    private clientRef;
    constructor(clientRef: DcRouterApiClient);
    list(): Promise<RemoteIngress[]>;
    getStatuses(): Promise<interfaces.data.IRemoteIngressStatus[]>;
    create(options: {
        name: string;
        listenPorts?: number[];
        autoDerivePorts?: boolean;
        tags?: string[];
    }): Promise<RemoteIngress>;
    build(): RemoteIngressBuilder;
}
