import { type Membership, type Principal, type TenantDirectoryPayload } from "./core/index.js"; /** The hosted tenant directory — the implementation the composition seam * (createVendo) puts in the `memberships` slot when VENDO_API_KEY fills a slot * the host left unset (adapter rule — see selectConnections in * compose-selection.ts; the seam itself never reads the environment). Rides the * shared console-client plumbing (cloud-console.ts): Bearer auth + deployment * identity + a per-request abort timeout. */ export interface CloudDirectoryOptions { apiKey: string; /** Defaults to the Vendo console; the composition seam passes VENDO_CONSOLE_URL. */ baseUrl?: string; fetch?: typeof fetch; /** Per-request abort budget. Short, because this is on the REQUEST HOT PATH — * every turn awaits it inside context resolution. */ timeoutMs?: number; /** How long one subject's answer is reused. `door.ts`'s KEY_TTL_MS posture. */ ttlMs?: number; } export interface CloudDirectory { /** The whole answer for one person; memoised per subject for ttlMs. */ entry(principal: Principal): Promise; /** The `memberships` seam, ready to hand to compose-config. */ memberships: (principal: Principal) => Promise; } export declare function cloudDirectory(options: CloudDirectoryOptions): CloudDirectory;