type FormResourceKind = "schema" | "version" | "state" | "submission" | "auditEvent" | "internal"; type FormDeletionCounts = Readonly>; interface FormDeletionScope { readonly tenantId?: string; readonly ownerId?: string; } interface FormDeletionRequest extends FormDeletionScope { readonly formId: string; readonly allowNonAtomic?: boolean; readonly dryRun?: boolean; readonly pageSize?: number; readonly cursor?: string; } interface FormResource { readonly kind: FormResourceKind; readonly id: string; readonly value: unknown; } interface FormLifecycleOptions { /** Map each stored resource (including internal records) to its actual scope. */ readonly scope?: (resource: FormResource) => FormDeletionScope; } interface FormDeletionInspection { readonly counts: FormDeletionCounts; readonly targets: readonly Pick[]; readonly nextCursor?: string; } interface FormDeletionResult { readonly status: "deleted" | "dry_run" | "partial" | "failed"; readonly atomic: boolean; readonly counts: FormDeletionCounts; readonly inspection?: FormDeletionInspection; readonly error?: { readonly code: "transaction_unsupported" | "storage_error"; readonly cause?: unknown; }; } interface FormLifecycleAdapter { readonly lifecycleCapabilities: { readonly resources: readonly FormResourceKind[]; readonly atomic: boolean; }; inspectFormDeletion(request: FormDeletionRequest): Promise; deleteForm(request: FormDeletionRequest): Promise; } interface FormLifecycleBackend { readonly resources: readonly FormResourceKind[]; readonly list: (formId: string) => Promise; /** Must condition deletion on the enumerated identity/value and return the actual affected count. */ readonly remove: (resource: FormResource) => Promise; /** Supplies an isolated backend bound to the transaction; rejection rolls back every removal. */ readonly transaction?: (operation: (backend: FormLifecycleBackend) => Promise) => Promise; } declare function emptyFormDeletionCounts(): Record; declare function createFormLifecycleAdapter(backend: FormLifecycleBackend, options?: FormLifecycleOptions): FormLifecycleAdapter; export { type FormDeletionCounts, type FormDeletionInspection, type FormDeletionRequest, type FormDeletionResult, type FormDeletionScope, type FormLifecycleAdapter, type FormLifecycleBackend, type FormLifecycleOptions, type FormResource, type FormResourceKind, createFormLifecycleAdapter, emptyFormDeletionCounts };