import { type AppDocument, type AppId, type Principal } from "@vendoai/core"; import { type VendoStore } from "../store.js"; import type { AppRow } from "./types.js"; /** 02-store §3 */ export declare function appStore(store: VendoStore): { put(principal: Principal, doc: AppDocument, opts?: { enabled?: boolean; }): Promise; get(id: AppId): Promise; list(principal: Principal): Promise; setEnabled(id: AppId, enabled: boolean): Promise; delete(id: AppId): Promise; /** Build contract §9.5 — the SECOND sanctioned door through 02-store §2's "rows never cross subjects" (the first is anon→signed-in adoption): a promote moves the canonical app into an org, and the org id becomes the row subject verbatim. Guarded on the CURRENT subject, so a promote can only ever move a row its caller was proven to own. */ promote(id: AppId, from: string, orgId: string): Promise; }; export type { AppRow } from "./types.js"; //# sourceMappingURL=apps.d.ts.map