import { type MethodRegistry, type SigningIdentity } from '@kokuin/token'; import type { StoreProvider } from '@kubun/db'; import type { CatalogUpstreamLookup } from '@kubun/graphql'; import { type RecordKey, type RecordStoreAdapter, type RecordTypeDefinition, type SignedRecord } from '@kubun/records'; import { type GraphStoreAPI } from '@kubun/store-graph'; export type CatalogExposureMeta = { catalogID: string; groupID: string; circleID: string; version: string; }; export type CatalogRecordDeps = { methods?: MethodRegistry; canFetchVersion?: (params: { requesterDID: string; catalogID: string; versionID: string; groupID: string; }) => Promise; isEffectiveOwnerDevice?: (params: { owner: string; issuer: string; }) => Promise; ownAgentsControllerOf?: (groupID: string) => Promise; resolveController: (did: string) => Promise; }; export type CatalogRecordTransaction = { provider: StoreProvider; records: RecordStoreAdapter; graph: GraphStoreAPI; signer: SigningIdentity; decisionHLC: string; resolveController: (did: string) => Promise; }; export declare class CatalogRecordError extends Error { constructor(message: string); } export declare class CatalogDeletionStampError extends CatalogRecordError { constructor(); } export declare class CatalogDeletionNameUnavailableError extends CatalogRecordError { constructor(); } /** An unambiguous key even when the three input IDs contain separators. */ export declare function exposureID(catalogID: string, groupID: string, circleID: string): string; export type RetryCatalogProjectionParams = { provider: StoreProvider; catalogID: string; deps: CatalogRecordDeps; lookupFor?: (provider: StoreProvider) => CatalogUpstreamLookup; fetch?: () => Promise; }; /** Network receipt cannot commit against the head or permission it started with. */ export declare function retryCatalogProjection(params: RetryCatalogProjectionParams): Promise; export declare function catalogRecordTypes(deps: CatalogRecordDeps): ReadonlyMap; /** Sign the parent and every known child deletion inside the caller's graph transaction. */ export declare function deleteCatalogDecision(key: RecordKey, tx: CatalogRecordTransaction): Promise;