import { Door, WardKey, type Behind, type Choice, type Invitation, type Payload } from '../quo/index.ts'; import type { Carrier, Clock, Entropy, Rows } from '../contract/index.ts'; import { type Answer, type BeingClass, type BeingLike, type JsonObject } from '../being/index.ts'; import { Partition, type BeingRow } from './partition.ts'; import { type Inside } from './stance.ts'; import { Ward } from './ward.ts'; export interface Classes { classOf(kind: string, registry?: string): BeingClass | undefined; } export type HouseParts = { readonly seed: Uint8Array | string; readonly memory: Rows; readonly classes: Classes; readonly entropy: Entropy; readonly clock: Clock; readonly carrier: Carrier; readonly ward: WardClass; readonly carries?: Readonly>; readonly dock?: Invitation; readonly routes?: Routes; readonly stands?: boolean; }; export interface Routes { reach(): readonly string[]; learn(ward: string, at: readonly string[]): Promise; } export type WardClass = { readonly genesis: string; readonly contract: string; fits(C: BeingClass): boolean; readonly fallback?: BeingClass; }; export declare const DOCK = "dock"; export interface Lender { offer(contract: string): Promise; withdraw(contract: string, heir: string): Promise; } type Birth = 'booted' | 'key taken' | 'no such class' | 'threw at birth'; export declare class House implements Behind, Inside { #private; readonly key: WardKey; readonly partition: Partition; readonly door: Door; readonly clock: Clock; private constructor(); static unpack(parts: HouseParts): Promise; standWard(): Promise; stand(key: string): 'booted' | 'stands' | 'no such being' | 'no such class' | 'threw at birth'; make(key: string, className: string): Promise; get pk(): string; get draw(): import("../quo/keys.ts").Draw; get ward(): Ward; get fault(): string | null; being(key: string): BeingLike | undefined; renew(): void; root(method?: string, args?: JsonObject): Promise; get zero(): boolean; answer(heir: string | null, p: Payload): Promise; within(heir: string, take: boolean, method?: string, args?: string): Promise; send(pk: string, bytes: Uint8Array): Promise; offer(contract: string): Promise; retract(contract: string, heir: string): Promise; reach(): readonly string[]; learn(ward: string, at: readonly string[]): Promise; live(key: string, row: BeingRow): boolean; boot(maker: string, className: string, key: string, id?: string): Promise; } export {};