/** * Tenant entitlement policy — shared axis types and strategy shapes (ENT-PR-00). * Authoritative block list lives in catalog.ts (§6.3, 49 blocks). */ export declare const ENTITLEMENT_RUNTIME_MODES: readonly ["ALWAYS_ON", "ENABLED", "DISABLED"]; export type EntitlementRuntimeMode = (typeof ENTITLEMENT_RUNTIME_MODES)[number]; export declare const ENTITLEMENT_VISIBILITY_MODES: readonly ["VISIBLE", "HIDDEN"]; export type EntitlementVisibilityMode = (typeof ENTITLEMENT_VISIBILITY_MODES)[number]; export declare const ENTITLEMENT_MUTATION_MODES: readonly ["ALLOW_WRITES", "READ_ONLY", "BLOCK_ALL"]; export type EntitlementMutationMode = (typeof ENTITLEMENT_MUTATION_MODES)[number]; export declare const ENTITLEMENT_BLOCK_CLASSES: readonly ["CORE_IMMUTABLE", "CORE_REQUIRED", "CONDITIONAL", "STRATEGY"]; export type EntitlementBlockClass = (typeof ENTITLEMENT_BLOCK_CLASSES)[number]; export declare const ENTITLEMENT_PARENT_OPERATORS: readonly ["AND", "OR"]; export type EntitlementParentOperator = (typeof ENTITLEMENT_PARENT_OPERATORS)[number]; /** SIMPLE profile → three-axis mapping (§6.4). */ export declare const SIMPLE_ENTITLEMENT_STATES: readonly ["on", "softOffVisible", "softOffHidden", "off", "hardOff"]; export type SimpleEntitlementState = (typeof SIMPLE_ENTITLEMENT_STATES)[number]; export declare const RECONCILIATION_MODES: readonly ["MODE_1", "MODE_2"]; export type ReconciliationMode = (typeof RECONCILIATION_MODES)[number]; /** STRATEGY block: payment_reconciliation allowedModes (§7.5). */ export interface PaymentReconciliationStrategy { readonly allowedModes: readonly ReconciliationMode[]; } /** STRATEGY block: stripe_integration_strategy mirrors Tenant.stripeIntegrationMode. */ export interface StripeIntegrationStrategy { readonly integrationMode: string; } export type EntitlementStrategyJson = PaymentReconciliationStrategy | StripeIntegrationStrategy | Record; /** Per-block three-axis posture stored on tenant policy rows. */ export interface EntitlementBlockAxes { readonly runtimeMode: EntitlementRuntimeMode; readonly visibilityMode: EntitlementVisibilityMode; readonly mutationMode: EntitlementMutationMode; } /** Read/write + nav visibility derived from axes (§6.1, §11.0). */ export interface EvaluatedEntitlementPosture { readonly visible: boolean; readonly allowReads: boolean; readonly allowWrites: boolean; } export interface EntitlementBlockCatalogEntry { readonly blockKey: EntitlementBlockKey; readonly blockClass: EntitlementBlockClass; readonly parentKeys: readonly EntitlementBlockKey[]; readonly parentOperator?: EntitlementParentOperator; /** Parents that may be absent without blocking entitlement (e.g. tax_management for fiscal). */ readonly optionalParentKeys?: readonly EntitlementBlockKey[]; /** * Always-AND parents evaluated before parentKeys/parentOperator. * Use when a block needs infra ∧ (A ∨ B) without nested parent expressions * (e.g. staff_pickup_scan: order_pickup_infrastructure ∧ (pickup_points ∨ immediate_self_pickup)). * Catalog-runtime SSOT only — not a Prisma catalog column. */ readonly requiredParentKeys?: readonly EntitlementBlockKey[]; readonly adminNavSectionId?: string; readonly routeSuffix?: string; readonly capabilityHint?: string; readonly immutableDefaults?: EntitlementBlockAxes; readonly defaultStrategy?: PaymentReconciliationStrategy; readonly notes?: string; } export declare const ENTITLEMENT_BLOCK_KEYS: readonly ["platform_core", "dev_entitlement_policy_editor", "transactions", "sales_point_management", "sales_point_individual_settings", "catalog_administration", "product_barcode_administration", "audit_event_collection", "audit_logs_admin_ui", "gdpr_consent_admin_ui", "incident_centre_ui", "payment_processing_runtime", "outbox_runtime", "product_vending", "donation", "inventory_management", "inventory_incidents", "loyalty_program", "promotions_program", "payment_rails_strategy", "payment_cash", "payment_multi_currency", "payment_reconciliation", "payments_hub_ui", "stripe_integration_strategy", "fulfillment_queue", "order_pickup_infrastructure", "pickup_points", "immediate_self_pickup", "customer_self_collect", "scheduled_pickup", "staff_pickup_scan", "surface_kiosk", "surface_customer", "realtime_device_transport", "customer_auth_pwa", "analytics", "analytics_overview", "analytics_explore", "tax_management", "compliance_fiscal_modules", "comms_governance", "permission_management_rbac", "tenant_ops_settings", "tenant_brand_kit", "admin_mfa", "admin_notifications", "bank_account_administration", "receipt_delivery", "bank_inbox_claims_api"]; export type EntitlementBlockKey = (typeof ENTITLEMENT_BLOCK_KEYS)[number]; export declare const TENANT_ENTITLEMENT_CATALOG_VERSION: 10; export declare const TENANT_ENTITLEMENT_BLOCK_COUNT: 50; export declare const TENANT_SURFACE_PRESET_IDS: readonly ["KIOSK_ONLY", "CUSTOMER_ONLY", "BOTH_SURFACES", "DONATION_ONLY", "VENDING_ONLY"]; export type TenantSurfacePresetId = (typeof TENANT_SURFACE_PRESET_IDS)[number]; /** Maps SIMPLE UI state to three-axis posture (§6.4). */ export declare function simpleEntitlementStateToAxes(state: SimpleEntitlementState): EntitlementBlockAxes; //# sourceMappingURL=types.d.ts.map