import { B as BaseClient, R as RequestOptions } from '../client-ePzhQKp9.mjs'; import { T as Timestamp, R as RiskLevel } from '../types-B4Ezqo7V.mjs'; /** * Fraud scoring types. * * Types for submitting fraud events and consuming risk decisions from * the Vesant fraud scoring service. */ type FraudEventType = '$create_account' | '$verification' | '$login' | '$logout' | '$update_account' | '$update_password' | '$link_session_to_user' | '$security_notification' | '$transaction' | '$wager' | '$chargeback' | '$create_order' | '$update_order' | '$order_status' | '$add_promotion'; interface FraudScoreRequest { customer_id: string; sift_user_id: string; event_type: FraudEventType; transaction_id?: string; amount?: number; currency?: string; ip_address?: string; device_id?: string; user_agent?: string; metadata?: Record; } /** * Server `ReactionType` — tenant-scoped and vesant-scoped fraud rule reactions. * Open string allows future server-side additions without a breaking SDK change. */ type FraudReactionType = 'approve' | 'reject' | 'hold' | 'restrict' | 'block' | 'refund' | 'void_transaction' | 'reverse_transaction' | 'freeze_account' | 'block_withdrawal' | 'limit_withdrawal' | 'disable_payment_method' | 'revoke_session' | 'require_reauth' | 'trigger_alert' | 'no_alert' | 'escalate' | 'increase_priority' | 'create_case' | 'auto_lock_account' | 'notify_team' | (string & {}); /** * Reactions the tenant platform must apply locally (freeze, refund, revoke session, etc.). */ interface TenantAction { type: FraudReactionType; params?: Record; } type FraudDecision = 'approve' | 'review' | 'block' | 'reject' | (string & {}); interface FraudScoreResponseData { reference: string; score: number; risk_level: RiskLevel; decision: FraudDecision; signals: string[]; matched_rule_ids: string[]; matched_rule_names: string[]; applied_reactions: string[]; alert_created: boolean; alert_reference?: string; tenant_actions: TenantAction[]; } interface FraudScoreResponseMetadata { request_id?: string; processing_ms?: number; tenant_id?: string; version?: string; } interface FraudScoreResponseEnvelope { success: boolean; message: string; data: T; metadata?: FraudScoreResponseMetadata; timestamp: Timestamp; } /** * Fraud scoring API client. */ declare class FraudClient extends BaseClient { /** * Submit a single fraud event for scoring. */ scoreEvent(request: FraudScoreRequest, requestOptions?: RequestOptions): Promise>; /** * Submit multiple fraud events for scoring. */ scoreEventsBulk(requests: FraudScoreRequest[], requestOptions?: RequestOptions): Promise>; private validateScoreRequest; } export { FraudClient, type FraudDecision, type FraudEventType, type FraudReactionType, type FraudScoreRequest, type FraudScoreResponseData, type FraudScoreResponseEnvelope, type FraudScoreResponseMetadata, type TenantAction };