import { type CheckoutHistoryItem, type CheckoutState } from '@funkit/api-base';
import type { ApiFunkitCheckoutActionParams } from '@funkit/utils';
import type { Address, Hex } from 'viem';
import type { MergedMultiStepDirectExecution } from '../domains/checkoutNotifications';
export type PurifiedCheckoutHistoryItem = {
    depositAddr?: Address;
    directExecution: boolean;
    id: Hex;
    fromAmountBaseUnit: string;
    fromChainId: string;
    fromTokenAddress: Address;
    state: CheckoutState;
    toAmountBaseUnit: string;
    toChainId: string;
    toTokenAddress: Address;
    createdTimeMs: number;
    updatedTimeMs: number;
    additionalActions: ApiFunkitCheckoutActionParams[];
    isWithdrawal: boolean;
    /**
     * Customer-specific, presentation-only metadata. Kept in its own bag so
     * customer concepts don't leak onto the shared top-level shape. Only present
     * when there's something to surface for the item's customer.
     */
    customerMetadata?: {
        /**
         * For Lighter withdrawal direct executions: which route was used.
         * `'secure'` is Lighter's native bridge to mainnet (recorded as
         * `EXTERNALLY_FULFILLED`); `'fast'` routes through Fun + Relay.
         */
        lighterWithdrawalType?: 'fast' | 'secure';
    };
} & ({
    depositAddr: Address;
    directExecution: false;
} | {
    depositAddr?: never;
    directExecution: true;
    txHashes: Hex[];
});
export declare const purifyCheckoutHistoryItem: (item: CheckoutHistoryItem | MergedMultiStepDirectExecution) => PurifiedCheckoutHistoryItem;
