import { KnownChainId, KnownTokenId } from '../utils/types/knownIds.mjs';
import { StacksContractAddress } from '../xlinkSdkUtils/types.mjs';
import '../utils/BigNumber.mjs';
import 'big.js';
import '../utils/typeHelpers.mjs';

interface BridgeSwapRouteNode {
    poolId: bigint;
    tokenContractAddress: `${string}.${string}::${string}`;
}
type BridgeSwapRoute_FromBitcoin = [];
interface CreateBridgeOrderResult {
    terminatingStacksToken: StacksContractAddress;
    data: Uint8Array;
}
declare function createBridgeOrder_BitcoinToStacks(info: {
    fromChain: KnownChainId.BitcoinChain;
    fromBitcoinScriptPubKey: Uint8Array;
    toChain: KnownChainId.StacksChain;
    toToken: KnownTokenId.StacksToken;
    toStacksAddress: string;
    swapRoute: BridgeSwapRoute_FromBitcoin;
    swapSlippedAmount?: bigint;
}): Promise<undefined | CreateBridgeOrderResult>;
declare function createBridgeOrder_BitcoinToEVM(info: {
    fromChain: KnownChainId.BitcoinChain;
    fromBitcoinScriptPubKey: Uint8Array;
    toChain: KnownChainId.EVMChain;
    toToken: KnownTokenId.EVMToken;
    toEVMAddress: string;
    swapRoute: BridgeSwapRoute_FromBitcoin;
    swapSlippedAmount?: bigint;
}): Promise<undefined | CreateBridgeOrderResult>;

export { type BridgeSwapRouteNode, type BridgeSwapRoute_FromBitcoin, type CreateBridgeOrderResult, createBridgeOrder_BitcoinToEVM, createBridgeOrder_BitcoinToStacks };
