import { ChainType, StatusResponse } from "@0xsquid/squid-types";
import { OnRampTransactionStatusType } from "./onramps";
import { SendTransactionStatus, SimplifiedRouteAction, TransactionStatus } from "./transaction";
type SimplifiedStatusResponse = Pick<StatusResponse, "axelarTransactionUrl" | "coralTransactionUrl"> & {
    toChain?: Pick<NonNullable<StatusResponse["toChain"]>, "transactionUrl"> | undefined;
};
export type SwapTransactionHistory = {
    fromChain: string;
    fromToken: string;
    fromAddress: string;
    fromAmount: string;
    toChain: string;
    toToken: string;
    transactionId: string;
    transactionIdForStatus?: string;
    quoteId: string | undefined;
    toAddress: string;
    toAmount: string;
    status: TransactionStatus;
    timestamp: number;
    nonce?: number;
    routeType: string | undefined;
    statusResponse?: SimplifiedStatusResponse;
    sourceTxExplorerUrl?: string;
    bridgeType?: string;
    actions?: SimplifiedRouteAction[];
};
export type SendTransactionHistory = {
    toAddress: string;
    token: {
        address: string;
        symbol: string;
        decimals: number;
        chainId: string;
        type: ChainType;
    };
    timestamp: number;
    status: SendTransactionStatus;
    hash: string;
    amount: string;
};
export type FiatTransactionHistory = {
    fromCountryCode: string;
    orderId: string;
    fromFiatCurrency: string;
    fromAmount: string;
    toCryptoCurrencyID: string;
    toTokenAddress: string;
    toCryptoAmount: string;
    toChainId: string;
    toAddress: string;
    status: OnRampTransactionStatusType;
    timestamp: number;
    transactionHash?: string;
    errorMessage?: string;
    providerId: string;
};
export declare enum HistoryTxType {
    SWAP = 0,
    BUY = 1,
    SEND = 2
}
export type TxTypeToStatusMap = {
    [HistoryTxType.SWAP]: TransactionStatus;
    [HistoryTxType.BUY]: OnRampTransactionStatusType;
    [HistoryTxType.SEND]: SendTransactionStatus;
};
export type StatusForTxType<T extends HistoryTxType> = T extends keyof TxTypeToStatusMap ? TxTypeToStatusMap[T] : never;
export type TxTypeToTransactionMap = {
    [HistoryTxType.SWAP]: {
        data: SwapTransactionHistory;
        txType: HistoryTxType.SWAP;
    };
    [HistoryTxType.BUY]: {
        data: FiatTransactionHistory;
        txType: HistoryTxType.BUY;
    };
    [HistoryTxType.SEND]: {
        data: SendTransactionHistory;
        txType: HistoryTxType.SEND;
    };
};
export type HistoryTransaction = TxTypeToTransactionMap[HistoryTxType];
export {};
