import { BigNumber } from "bignumber.js";
import { Transaction } from "../../generated/types";
import { TransactionCommon } from "@ledgerhq/types-live";
import { CustomErrorType } from "../../wallet-api/Exchange";
export type { SwapLiveError } from "@ledgerhq/wallet-api-exchange-module";
export declare function defaultTransaction({ family, amount, recipient, customFeeConfig, }: TransactionWithCustomFee): Partial<Transaction>;
export declare function cardanoTransaction({ amount, recipient, customFeeConfig, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "cardano";
}>>;
export declare function nearTransaction({ amount, recipient, customFeeConfig, }: TransactionWithCustomFee): Extract<Transaction, {
    family: "near";
}>;
export declare function tezosTransaction({ amount, recipient, customFeeConfig, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "tezos";
}>>;
export declare function tronTransaction({ amount, recipient, customFeeConfig, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "tron";
}>>;
export declare function stellarTransaction({ amount, recipient, customFeeConfig, payinExtraId, customErrorType, }: TransactionWithCustomFee): Extract<Transaction, {
    family: "stellar";
}>;
export declare function rippleTransaction({ amount, recipient, customFeeConfig, payinExtraId, customErrorType, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "xrp";
}>>;
export declare function evmTransaction({ amount, recipient, customFeeConfig, extraTransactionParameters, sponsored, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "evm";
}>>;
export declare function bitcoinTransaction({ amount, recipient, customFeeConfig, extraTransactionParameters, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "bitcoin";
}>>;
export declare function solanaTransaction({ amount, recipient, customFeeConfig, extraTransactionParameters, }: TransactionWithCustomFee): Extract<Transaction, {
    family: "solana";
}>;
export declare function elrondTransaction({ amount, recipient, customFeeConfig, }: TransactionWithCustomFee): Extract<Transaction, {
    family: "multiversx";
}>;
export declare function cosmosTransaction({ amount, recipient, customFeeConfig, payinExtraId, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "cosmos";
}>>;
export declare function hederaTransaction({ amount, recipient, customFeeConfig, payinExtraId, }: TransactionWithCustomFee): Partial<Extract<Transaction, {
    family: "hedera";
}>>;
export type TransactionWithCustomFee = TransactionCommon & {
    customFeeConfig: {
        [key: string]: BigNumber;
    };
    payinExtraId?: string;
    customErrorType?: CustomErrorType;
    extraTransactionParameters?: string;
    family: string;
    sponsored?: boolean;
};
export type TransactionStrategyFunction = (params: TransactionWithCustomFee) => Partial<Transaction>;
export declare const transactionStrategy: {
    [K in Transaction["family"]]: TransactionStrategyFunction;
};
//# sourceMappingURL=transactionStrategies.d.ts.map