import { HostName, HostNameBase, DnsType } from "./HostName.js"; export declare const child: unique symbol; export declare type HostType = "gateway" | null | "vagrant" | "domain" | "root-host"; export declare class Resolve { host: string; _type: HostType; dns: DnsType; gateway: string | null; parent: Resolve | null; static fromHostName(hostname: HostNameBase): Resolve; [child]: Resolve | null; constructor(host: string, _type: HostType, dns: DnsType, gateway?: string | null, _child?: Resolve | null, parent?: Resolve | null); get debug(): string; get debugStr(): string; get reconstructed(): string; makeString(dbg: boolean): string; get isGateway(): boolean; get grandParent(): Resolve; learnFrom(teacher: Resolve): Resolve; get type(): HostType; set type(v: HostType); infer(): void; get closestResolvedGateway(): Resolve | null; copy(): Resolve; } export declare function makeResolve(host: HostNameBase, fn: (e: Resolve, i: number) => Resolve): Resolve; /** * Annotate the host as a root gateway. This means that the domains parenting this domain name * must be network domains without a burpa gateway. * * @returns */ export declare function resolveAsRootVagrant(name: HostNameBase, gateway: string): Resolve; /** * Annotate the host as a root gateway. This means that the domains parenting this domain name * must be network domains without a burpa gateway. * * @returns */ export declare function resolveAsRootGateway(name: HostName): Resolve;