import BN__default from 'bn.js';
import { PublicKey, TransactionInstruction } from '@solana/web3.js';
import { r as ApiV3PoolInfoStandardItemCpmm, z as CpmmKeys, bO as ReturnTypeMakeInstructions } from '../../api-aa5759c5.js';
import { CpmmLockExtInfo, FeeOn } 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 './curve/calculator.js';
import './layout.js';

declare function makeCreateCpmmPoolInInstruction(programId: PublicKey, creator: PublicKey, configId: PublicKey, authority: PublicKey, poolId: PublicKey, mintA: PublicKey, mintB: PublicKey, lpMint: PublicKey, userVaultA: PublicKey, userVaultB: PublicKey, userLpAccount: PublicKey, vaultA: PublicKey, vaultB: PublicKey, createPoolFeeAccount: PublicKey, mintProgramA: PublicKey, mintProgramB: PublicKey, observationId: PublicKey, amountMaxA: BN__default, amountMaxB: BN__default, openTime: BN__default): TransactionInstruction;
declare function makeDepositCpmmInInstruction(programId: PublicKey, owner: PublicKey, authority: PublicKey, poolId: PublicKey, userLpAccount: PublicKey, userVaultA: PublicKey, userVaultB: PublicKey, vaultA: PublicKey, vaultB: PublicKey, mintA: PublicKey, mintB: PublicKey, lpMint: PublicKey, lpAmount: BN__default, amountMaxA: BN__default, amountMaxB: BN__default): TransactionInstruction;
declare function makeWithdrawCpmmInInstruction(programId: PublicKey, owner: PublicKey, authority: PublicKey, poolId: PublicKey, userLpAccount: PublicKey, userVaultA: PublicKey, userVaultB: PublicKey, vaultA: PublicKey, vaultB: PublicKey, mintA: PublicKey, mintB: PublicKey, lpMint: PublicKey, lpAmount: BN__default, amountMinA: BN__default, amountMinB: BN__default): TransactionInstruction;
declare function makeSwapCpmmBaseInInstruction(programId: PublicKey, payer: PublicKey, authority: PublicKey, configId: PublicKey, poolId: PublicKey, userInputAccount: PublicKey, userOutputAccount: PublicKey, inputVault: PublicKey, outputVault: PublicKey, inputTokenProgram: PublicKey, outputTokenProgram: PublicKey, inputMint: PublicKey, outputMint: PublicKey, observationId: PublicKey, amountIn: BN__default, amounOutMin: BN__default): TransactionInstruction;
declare function makeSwapCpmmBaseOutInstruction(programId: PublicKey, payer: PublicKey, authority: PublicKey, configId: PublicKey, poolId: PublicKey, userInputAccount: PublicKey, userOutputAccount: PublicKey, inputVault: PublicKey, outputVault: PublicKey, inputTokenProgram: PublicKey, outputTokenProgram: PublicKey, inputMint: PublicKey, outputMint: PublicKey, observationId: PublicKey, amountInMax: BN__default, amountOut: BN__default): TransactionInstruction;
declare function makeCpmmLockInstruction(props: {
    poolInfo: ApiV3PoolInfoStandardItemCpmm;
    poolKeys: CpmmKeys;
    ownerInfo: {
        feePayer: PublicKey;
        wallet: PublicKey;
    };
    feeNftOwner: PublicKey;
    lockProgram: PublicKey;
    lockAuthProgram: PublicKey;
    lpAmount: BN__default;
    withMetadata?: boolean;
    getEphemeralSigners?: (k: number) => any;
}): Promise<ReturnTypeMakeInstructions<CpmmLockExtInfo>>;
declare function cpmmLockPositionInstruction({ programId, auth, payer, liquidityOwner, nftOwner, nftMint, nftAccount, poolId, lockPda, mintLp, userLpVault, lockLpVault, poolVaultA, poolVaultB, metadataAccount, lpAmount, withMetadata, }: {
    programId: PublicKey;
    auth: PublicKey;
    payer: PublicKey;
    liquidityOwner: PublicKey;
    nftOwner: PublicKey;
    nftMint: PublicKey;
    nftAccount: PublicKey;
    poolId: PublicKey;
    lockPda: PublicKey;
    mintLp: PublicKey;
    userLpVault: PublicKey;
    lockLpVault: PublicKey;
    poolVaultA: PublicKey;
    poolVaultB: PublicKey;
    metadataAccount: PublicKey;
    lpAmount: BN__default;
    withMetadata: boolean;
}): TransactionInstruction;
declare function collectCpFeeInstruction({ programId, nftOwner, auth, nftAccount, lockPda, poolId, mintLp, userVaultA, userVaultB, poolVaultA, poolVaultB, mintA, mintB, lockLpVault, lpFeeAmount, cpmmProgram, cpmmAuthProgram, }: {
    programId: PublicKey;
    nftOwner: PublicKey;
    auth: PublicKey;
    nftMint: PublicKey;
    nftAccount: PublicKey;
    lockPda: PublicKey;
    poolId: PublicKey;
    mintLp: PublicKey;
    userVaultA: PublicKey;
    userVaultB: PublicKey;
    poolVaultA: PublicKey;
    poolVaultB: PublicKey;
    mintA: PublicKey;
    mintB: PublicKey;
    lockLpVault: PublicKey;
    lpFeeAmount: BN__default;
    cpmmProgram?: PublicKey;
    cpmmAuthProgram?: PublicKey;
}): TransactionInstruction;
declare function makeCollectCreatorFeeInstruction(programId: PublicKey, creator: PublicKey, authority: PublicKey, poolId: PublicKey, configId: PublicKey, vaultA: PublicKey, vaultB: PublicKey, mintA: PublicKey, mintB: PublicKey, ownerVaultA: PublicKey, ownerVaultB: PublicKey, mintProgramA: PublicKey, mintProgramB: PublicKey): TransactionInstruction;
declare function initializeWithPermission(programId: PublicKey, payer: PublicKey, creator: PublicKey, configId: PublicKey, authority: PublicKey, poolId: PublicKey, mintA: PublicKey, mintB: PublicKey, lpMint: PublicKey, payerVaultA: PublicKey, payerVaultB: PublicKey, payerLpAccount: PublicKey, vaultA: PublicKey, vaultB: PublicKey, createPoolFeeAccount: PublicKey, mintProgramA: PublicKey, mintProgramB: PublicKey, observationId: PublicKey, permissionPda: PublicKey, amountA: BN__default, amountB: BN__default, openTime: BN__default, feeOn: FeeOn): TransactionInstruction;

export { collectCpFeeInstruction, cpmmLockPositionInstruction, initializeWithPermission, makeCollectCreatorFeeInstruction, makeCpmmLockInstruction, makeCreateCpmmPoolInInstruction, makeDepositCpmmInInstruction, makeSwapCpmmBaseInInstruction, makeSwapCpmmBaseOutInstruction, makeWithdrawCpmmInInstruction };
