import { BN } from "@coral-xyz/anchor";
import { PublicKey, TransactionInstruction } from "@solana/web3.js";
import { CreatePoolType, DepositType, TradeType, WithdrawType } from "./types";
declare class PumpSwapSDK {
    private program;
    /**
     *
     * @param cluster "mainnet" | "devnet"
     * @param commitment "processed" | "confirmed" | "finalized"
     * @param customRPC string
     */
    constructor(cluster: "mainnet" | "devnet", commitment: "processed" | "confirmed" | "finalized", customRPC?: string);
    /**
     *
     * @param lpFeeBasisPoints BN
     * @param protocolFeeBasisPoints BN
     * @param protocolFeeRecipients Array<PublicKey>
     * @returns Promise<TransactionInstruction>
     */
    getCreateConfigInstruction: (lpFeeBasisPoints: BN, protocolFeeBasisPoints: BN, protocolFeeRecipients: Array<PublicKey>) => Promise<TransactionInstruction>;
    /**
     *
     * @param baseAmountOut BN
     * @param maxQuoteAmountIn BN
     * @param tradeParam TradeType
     * @returns Promise<TransactionInstruction>
     */
    getBuyInstruction: (baseAmountOut: BN, maxQuoteAmountIn: BN, tradeParam: TradeType) => Promise<TransactionInstruction>;
    /**
     *
     * @param baseAmountIn BN
     * @param minQuoteAmountOut BN
     * @param tradeParam TradeType
     * @returns Promise<TransactionInstruction>
     */
    getSellInstruction: (baseAmountIn: BN, minQuoteAmountOut: BN, tradeParam: TradeType) => Promise<TransactionInstruction>;
    /**
     *
     * @param index number
     * @param baseAmountIn BN
     * @param quoteAmountIn BN
     * @param createPoolParam CreatePoolType
     * @param user PublicKey
     * @returns Promise<TransactionInstruction>
     */
    getCreatePoolInstruction: (index: number, baseAmountIn: BN, quoteAmountIn: BN, createPoolParam: CreatePoolType, user: PublicKey) => Promise<TransactionInstruction>;
    /**
     *
     * @param lpTokenAmountOut BN
     * @param maxBaseAmountIn BN
     * @param maxQuoteAmountIn BN
     * @param depositType DepositType
     * @returns Promise<TransactionInstruction>
     */
    getDepositInstruction: (lpTokenAmountOut: BN, maxBaseAmountIn: BN, maxQuoteAmountIn: BN, depositType: DepositType) => Promise<TransactionInstruction>;
    /**
     *
     * @param disableCreatePool boolean
     * @param disableDeposit boolean
     * @param disableWithdraw boolean
     * @param disableBuy boolean
     * @param disableSell boolean
     * @returns Promise<TransactionInstruction>
     */
    getDisableInstruction: (disableCreatePool: boolean, disableDeposit: boolean, disableWithdraw: boolean, disableBuy: boolean, disableSell: boolean) => Promise<TransactionInstruction>;
    /**
     *
     * @param account PublicKey
     * @returns Promise<TransactionInstruction>
     */
    getExtendAccountInstruction: (account: PublicKey) => Promise<TransactionInstruction>;
    /**
     *
     * @param newAdmin PublicKey
     * @returns Promise<TransactionInstruction>
     */
    getUpdateAdminInstruction: (newAdmin: PublicKey) => Promise<TransactionInstruction>;
    /**
     *
     * @param lpFeeBasisPoints BN
     * @param protocolFeeBasisPoints BN
     * @param protocolFeeRecipients Array<PublicKey>
     * @returns Promise<TransactionInstruction>
     */
    getUpdateFeeConfigInstruction: (lpFeeBasisPoints: BN, protocolFeeBasisPoints: BN, protocolFeeRecipients: Array<PublicKey>) => Promise<TransactionInstruction>;
    /**
     *
     * @param lpTokenAmountIn BN
     * @param minBaseAmountOut BN
     * @param minQuoteAmountOut BN
     * @param withdrawParam WithdrawType
     * @returns Promise<TransactionInstruction>
     */
    getWithdrawInstruction: (lpTokenAmountIn: BN, minBaseAmountOut: BN, minQuoteAmountOut: BN, withdrawParam: WithdrawType) => Promise<TransactionInstruction>;
}
export default PumpSwapSDK;
//# sourceMappingURL=index.d.ts.map