import { type RiskValues, type SolanaAddress } from '@funkit/api-base'; import type { FunLogger } from '../utils/funLogger'; /** Chainalysis levels that block outright. */ export declare const BLOCKED_RISK_LEVELS: readonly RiskValues[]; /** `null` — slot not screened. `undefined` — screened, no level came back. */ type ScreenedRisk = RiskValues | null | undefined; export interface AddressRiskScreening { isRisky: boolean; /** Positional `[sender, recipient, solanaSender]`, as reported to the risk monitor. */ risks: [ScreenedRisk, ScreenedRisk, ScreenedRisk]; } /** * Screen up to three addresses against Chainalysis — the one implementation * behind web's `hasRisk` and both withdrawal rails. * * - Blocks only on an explicit `Severe`/`High`; an unscreened address passes. * - Request failures propagate; both rails block on the error state. * - Checkout screens every connected wallet plus an optional custom recipient: * a blocked wallet blocks the checkout whichever one ends up paying. * Withdrawal screens the recipient only, leaving the sender slots empty. */ export declare function screenAddressesForRisk({ senderAddress, solanaSenderAddress, recipientAddress, apiKey, logger, screeningDisabled, senderChainId, recipientChainId, }: { senderAddress?: string; /** Screened on Solana mainnet, so it needs no chain id of its own. */ solanaSenderAddress?: SolanaAddress; recipientAddress?: string; apiKey: string; logger: FunLogger; /** The `disable-frontend-chainalysis` kill switch, resolved by the caller. */ screeningDisabled?: boolean; /** * Internal decimal chain ids. Lighter's is dropped before the request — see * `screenableChainId`. */ senderChainId?: string; recipientChainId?: string; }): Promise; export {}; //# sourceMappingURL=risk.d.ts.map