/** * Compliance — osobna, nieomijalna warstwa. * * Nie żyje w konfiguracji widgetu jako dowolna logika. Konfiguracja może * jedynie WYBIERAĆ reguły z katalogu zdefiniowanego przez compliance team. * * Fail-closed: brak odpowiedzi compliance = blokada akcji. * Snapshot (hash reguł + wynik + timestamp) leci razem z transakcją do * backendu — chroni przed TOCTOU (backend reweryfikuje). */ export type ComplianceRuleId = string & { readonly _brand: 'ComplianceRuleId'; }; export declare const asComplianceRuleId: (value: string) => ComplianceRuleId; export type ComplianceStatus = 'OK' | 'WARN' | 'BLOCKED'; export type ComplianceFailureMode = 'BLOCK' | 'WARN_AND_REQUIRE_ACKNOWLEDGMENT'; export interface ComplianceRuleRef { readonly ruleId: ComplianceRuleId; readonly params?: Readonly>; readonly onFail?: ComplianceFailureMode; } export interface ComplianceCheckResult { readonly ruleId: ComplianceRuleId; readonly status: ComplianceStatus; readonly message?: string; readonly details?: Readonly>; } export interface ComplianceEvaluation { readonly status: ComplianceStatus; readonly results: readonly ComplianceCheckResult[]; readonly evaluatedAt: number; /** Hash reguł + subject + wyniku; weryfikowany przez backend przy submit. */ readonly snapshot: string; } export interface ComplianceSubject { readonly clientId?: string; readonly dealerId?: string; readonly product?: string; readonly [key: string]: unknown; } export interface ComplianceService { /** Ewaluacja pre-render / pre-action. Cache'owana przez TTL po stronie implementacji. */ evaluate(rules: readonly ComplianceRuleRef[], subject: ComplianceSubject): Promise; /** Re-check tuż przed submitem akcji (defense in depth, świeży snapshot). */ recheck(evaluation: ComplianceEvaluation): Promise; } export declare const COMPLIANCE_SERVICE: import("../index.js").EchelonToken; //# sourceMappingURL=index.d.ts.map