import { TransactionInstruction, PublicKey } from '@solana/web3.js';
import { bT as InstructionReturn, x as AmmV4Keys, y as AmmV5Keys } from '../../api-aa5759c5.js';
import BN__default from 'bn.js';
import { LiquidityAddInstructionParams, RemoveLiquidityInstruction, SwapFixedInInstructionParamsV4, SwapFixedOutInstructionParamsV4, SwapInstructionParams, InitPoolInstructionParamsV4 } from './type.js';
import 'axios';
import '../../solana/type.js';
import '@solana/spl-token';
import '../../api/url.js';
import '../../common/owner.js';
import '../../common/txTool/lookupTable.js';
import '../../common/txTool/txType.js';
import 'decimal.js';
import '../../module/token.js';
import '../../common/pubKey.js';
import '../../common/logger.js';
import '../../module/currency.js';
import '../../marshmallow/index.js';
import '../../marshmallow/buffer-layout.js';
import './layout.js';

declare function makeAddLiquidityInstruction(params: LiquidityAddInstructionParams): TransactionInstruction;
declare function removeLiquidityInstruction(params: RemoveLiquidityInstruction): TransactionInstruction;
declare function createPoolV4InstructionV2({ programId, ammId, ammAuthority, ammOpenOrders, lpMint, coinMint, pcMint, coinVault, pcVault, withdrawQueue, ammTargetOrders, poolTempLp, marketProgramId, marketId, userWallet, userCoinVault, userPcVault, userLpVault, nonce, openTime, coinAmount, pcAmount, ammConfigId, feeDestinationId, }: {
    programId: PublicKey;
    ammId: PublicKey;
    ammAuthority: PublicKey;
    ammOpenOrders: PublicKey;
    lpMint: PublicKey;
    coinMint: PublicKey;
    pcMint: PublicKey;
    coinVault: PublicKey;
    pcVault: PublicKey;
    withdrawQueue: PublicKey;
    ammTargetOrders: PublicKey;
    poolTempLp: PublicKey;
    marketProgramId: PublicKey;
    marketId: PublicKey;
    userWallet: PublicKey;
    userCoinVault: PublicKey;
    userPcVault: PublicKey;
    userLpVault: PublicKey;
    ammConfigId: PublicKey;
    feeDestinationId: PublicKey;
    nonce: number;
    openTime: BN__default;
    coinAmount: BN__default;
    pcAmount: BN__default;
}): InstructionReturn;
declare function simulatePoolInfoInstruction(poolKeys: AmmV4Keys | AmmV5Keys): TransactionInstruction;
declare function makeSwapFixedInInstruction({ poolKeys: propPoolKeys, userKeys, amountIn, minAmountOut, modelDataPubKey, }: SwapFixedInInstructionParamsV4, version: number): TransactionInstruction;
declare function makeSwapFixedOutInstruction({ poolKeys: propPoolKeys, userKeys, maxAmountIn, amountOut, modelDataPubKey, }: SwapFixedOutInstructionParamsV4, version: number): TransactionInstruction;
declare function swapBaseInV2Instruction(programId: PublicKey, poolId: PublicKey, auth: PublicKey, vaultA: PublicKey, vaultB: PublicKey, ownerTokenIn: PublicKey, ownerTokenOut: PublicKey, owner: PublicKey, amountIn: BN__default, minAmountOut: BN__default): TransactionInstruction;
declare function swapBaseOutV2Instruction(programId: PublicKey, poolId: PublicKey, auth: PublicKey, vaultA: PublicKey, vaultB: PublicKey, ownerTokenIn: PublicKey, ownerTokenOut: PublicKey, onwer: PublicKey, maxAmountIn: BN__default, amountOut: BN__default): TransactionInstruction;
declare function makeAMMSwapV2Instruction(params: SwapInstructionParams): TransactionInstruction;
declare function makeAMMSwapInstruction(params: SwapInstructionParams): TransactionInstruction;
declare function makeInitPoolInstructionV4({ poolKeys: propPoolKeys, userKeys, startTime, }: InitPoolInstructionParamsV4): TransactionInstruction;
declare function makeSimulatePoolInfoInstruction({ poolKeys }: {
    poolKeys: AmmV4Keys | AmmV5Keys;
}): {
    instruction: TransactionInstruction;
};

export { createPoolV4InstructionV2, makeAMMSwapInstruction, makeAMMSwapV2Instruction, makeAddLiquidityInstruction, makeInitPoolInstructionV4, makeSimulatePoolInfoInstruction, makeSwapFixedInInstruction, makeSwapFixedOutInstruction, removeLiquidityInstruction, simulatePoolInfoInstruction, swapBaseInV2Instruction, swapBaseOutV2Instruction };
