import { type Asker, type AskSpec, type Blueprint, type Invitation, type JsonObject, type Stance } from '../being/index.ts'; import { Ward, type Lender, type WardStance } from '../ward/index.ts'; export interface Hosting { host(name: string, invitation: Invitation, seed?: string, memory?: string, kind?: string, registry?: string): Promise; stand(hosted: Hosted): Promise; move(name: string, seed: string, from: string | undefined, to: string | undefined): Promise; release(name: string, memory: string | undefined): Promise; route(pk: string, at: readonly string[] | null): boolean; reached(pk: string, at: readonly string[]): void; keep(): Promise; failures(): Failures; readonly foreground: boolean; sweep(): Promise; awaken(key: string): Promise; rouse(key: string): Promise; lull(key: string): Promise; listening(): string[]; heard(): Promise; } export type Hosted = { ward: string; seed: string; memory?: string; registry?: string; }; export type Failures = { wards: Record; routes: Record; }; export declare const BOX = "box"; export type DockStance = WardStance & { readonly ground: Hosting; }; export declare const hostable: (C: unknown) => boolean; export declare abstract class Dock extends Ward implements Lender { #private; static readonly kind: string; static cells: JsonObject; static asks: Record; constructor(stance: Stance); stand(): Promise; describe(asker: Asker): Blueprint; heard(): Promise; get hosted(): Hosted[]; get routes(): Record; get addresses(): string[]; route(args: JsonObject): JsonObject; reach(args: JsonObject): JsonObject; hold(args: JsonObject): Promise; learn(ward: string, at: readonly string[]): Promise; become(args: JsonObject): JsonObject; boot(): Promise; unboot(args: JsonObject): Promise; open(args: JsonObject): Promise; sweep(): Promise; host(args: JsonObject): Promise; move(args: JsonObject): Promise; lend(args: JsonObject): Promise; retract(args: JsonObject): Promise; offer(contract: string): Promise; withdraw(contract: string, heir: string): Promise; }