import { BillingCapabilities, BillingOperationCapabilityReason } from '@xylex-group/athena/billing'; /** * Operations that feed the Billing ops console. Distinct from Auth rights * such as `billing.admin.*`. */ export declare const OPERATIONS_BILLING_GATE_OPERATIONS: readonly ["admin.connections.materialize", "admin.conflicts.resolve", "admin.ingestion.health", "admin.reconciliation.run", "admin.webhooks.status", "admin.webhooks.reconcile", "admin.webhooks.verify", "invoices.list", "payments.list", "products.list", "payments.create", "payments.cancel", "subscriptions.list", "subscriptions.create", "subscriptions.update", "subscriptions.cancel"]; export type OperationsBillingGateOperation = (typeof OPERATIONS_BILLING_GATE_OPERATIONS)[number]; /** * Operations Billing UI gates. Derived from `BillingCapabilities.operations`, * not Auth `AuthorizationCapabilities` booleans. * * Merchant resource access (`payments.list`, …) is distinct from operational * administration (`admin.*`). */ export declare function resolveBillingOperationsUiCapabilities(capabilities: BillingCapabilities | null | undefined): { catalog: { read: boolean; }; checkouts: { read: boolean; }; conflicts: { resolve: boolean; }; connections: { materialize: boolean; }; ingestion: { read: boolean; }; invoices: { read: boolean; }; payments: { read: boolean; write: boolean; }; reconciliation: { run: boolean; }; subscriptions: { read: boolean; write: boolean; }; webhooks: { read: boolean; reconcile: boolean; verify: boolean; }; }; export type BillingOperationsUiCapabilities = ReturnType; export declare function operationsBillingSurfaceFlags(capabilities: BillingOperationsUiCapabilities): readonly boolean[]; export declare function countOperationsBillingSurfaces(capabilities: BillingOperationsUiCapabilities): { advertised: number; total: number; }; export declare function hasAnyOperationsBillingSurface(capabilities: BillingOperationsUiCapabilities): boolean; export declare function listOperationsBillingGateAvailability(capabilities: BillingCapabilities | null | undefined): ReadonlyArray<{ available: boolean; effectiveAvailable: boolean; operation: OperationsBillingGateOperation; reason: BillingOperationCapabilityReason | undefined; }>; export declare function describeOperationsBillingUnavailable(input: { billingPresent: boolean; canQuery: boolean; capabilities: BillingCapabilities | null | undefined; queryFailed: boolean; }): { reason: string; title: string; }; /** Operational-admin subset (`admin.*` only). Not merchant `payments.list`. */ export declare function resolveBillingOperatorCapabilities(capabilities: BillingCapabilities | null | undefined): { canReadIngestion: boolean; canReadTraces: boolean; canReadWebhooks: boolean; canReconcileWebhooks: boolean; canResolveConflicts: boolean; canRunReconciliation: boolean; canVerifyWebhooks: boolean; }; export type BillingOperatorCapabilities = ReturnType; export declare function hasAnyBillingOperatorCapability(capabilities: BillingOperatorCapabilities): boolean;