/** * Where fiat deposits are served, as ops configures it (Statsig * `fiatv2regionpolicy`). * * - `deny` is read first; `allow` carves exceptions back out of it. * - Empty lists serve everywhere, so an unreachable Statsig never blocks a * buyer the backend would have priced. */ export interface FiatRegionPolicy { deny: readonly string[]; allow: readonly string[]; } /** The buyer's IP-resolved location; `state` is empty when unresolved. */ export interface FiatRegionGeo { alpha2: string; state: string; } export interface FiatRegionVerdict { supported: boolean; /** The entry that decided it; absent when nothing matched. */ matched?: string; /** Which list that entry came from. */ source?: 'deny' | 'allow'; /** Entries passed over: no subdivision to judge them by, or unreadable. */ skipped?: readonly string[]; /** * A deny stood, but an `allow` entry that could not be judged might have * lifted it — so the buyer is let through for the backend to rule on. */ deferred?: true; } /** * Whether the buyer's region is served, per the deny-then-allow policy. * * - The tightest matching entry decides; `allow` wins a tie, since it exists * only to override. * - An entry that cannot be judged does not participate. With no subdivision * resolved, `US-NY` neither denies nor rescues. * - A block an unjudgeable exception might have lifted is not a block. This * gate exists to spare the buyer wasted effort, not to enforce anything — * the backend refuses a corridor it cannot serve either way — so a New * Yorker whose state went unresolved reaches the amount screen rather than * a terminal screen we cannot stand behind. */ export declare function resolveFiatRegionSupport(policy: FiatRegionPolicy | undefined, geo: FiatRegionGeo | undefined): FiatRegionVerdict; //# sourceMappingURL=regionPolicy.d.ts.map