import type { TFunction } from 'i18next'; import type { GetIdentityAssertion } from '../identity/IdentityContext'; import type { DepositOutcomeReporter } from './depositOutcome'; /** What the fiat flow needs from the host's minter, wrapped for one user. */ export interface FiatIdentityAssertion { getAssertion: GetIdentityAssertion; /** The user the assertion is minted for; bounds the transport's cache. */ subject: string; } /** * The host's identity minter as the fiat flow sees it: wrapped so each * contract error code lands where the spec says, and read for the email the * assertion actually carries. * * - `SESSION_EXPIRED` closes the flow and reports `session_expired`; the host * re-authenticates and reopens. * - `ACCOUNT_INELIGIBLE` reports `blocked` and is terminal for this account. * - `TRANSIENT`, or no code, reports `identity_assertion_failed`; the * existing retry UI is the recovery. */ export declare function useIdentityAssertion({ getIdentityAssertion, userId, outcome, onCloseFlow, t, }: { getIdentityAssertion: GetIdentityAssertion | undefined; userId: string; outcome: DepositOutcomeReporter; onCloseFlow: () => void; t: TFunction; }): { /** `undefined` while the host declares no identity. */ identityAssertion: FiatIdentityAssertion | undefined; /** The `email` claim of an assertion minted for the current user. */ assertedEmail: string | undefined; /** The minter refused this account; nothing in the flow recovers it. */ accountIneligible: boolean; }; //# sourceMappingURL=useIdentityAssertion.d.ts.map