import { FocusedObject } from "functional"; import { Gateway } from "./Gateway.js"; import { Host } from "./Host.js"; import { MachineInit } from "../Independents/Machine.js"; import { Datagram, Request, ResponseInit } from "../Independents/Datagram/datagram-types.js"; import { THost, TBurpastatePersistent } from "../Independents/DNS/datagram-router.js"; import { Vagrant } from "./Host.js"; import { HostName, HostNameBase, HostNameTemplate } from "../Independents/DNS/HostName.js"; import { Jsonable, THostExtension } from "./types.js"; import { BurpaDriver } from "./types.js"; export declare type DatagramStub = { from: string; to: string; data: string; }; export declare type RequestTrailRecord = DatagramStub | { connect: string; }; export declare type TBurpaState = { persistent: TBurpastatePersistent; transient: { inboxes: { [key: string]: Datagram[]; }; todos: (() => void)[]; resources: { [key: string]: any; }; hostExtensions: { [key: string]: THostExtension; }; host502: THost; driver: BurpaDriver; }; }; export declare function newVagrantId(): string; export declare function newGatewayId(): string; export declare function newBurpaState(): TBurpaState; export declare class CBurpastateWrapper extends FocusedObject { get localGateway(): THost; get localHost(): THost; save(): void; spawnHost(hostTemplate: string, init: MachineInit, secret?: string): Promise; hostNameTemplate(template: string): HostNameTemplate; resolveConstants(ret: HostNameBase): HostNameBase; hostName(name: string): HostName; getHost502(action: string, responseFn: (request: Request) => ResponseInit | Promise): Host; log(type: string, text: string): void; addGateway_Old(id: string): Gateway; getHost(id: string): Host; addVagrant_Old(id: string, init: MachineInit): Vagrant; LocalGateway(): Gateway; get hosts(): Host[]; getSerialId(): string; debugLocalHosts(): string; debugTransports(): string; serializeTransient(): Jsonable; findLocalHost(host: string): Host | null; isLocalOrOwnedHost(host: string): boolean; } export declare const BurpaStateLens: import("functional").Lens; export declare function updateRoots(state: CBurpastateWrapper, body: any): void;