import { AddLiquidityQuote, AddLiquidityQuoteParam, AddLiquidityTxParam, CollectFeesAndRewardsTxParam, CollectMultipleFeesAndRewardsTxParam, RemoveLiquidityQuote, RemoveLiquidityQuoteParam, RemoveLiquidityTxParam } from "./public/types";
import { OrcaDAL } from "../dal/orca-dal";
import { MultiTransactionBuilder } from "../utils/public/multi-transaction-builder";
import { Address } from "@project-serum/anchor";
import { PDA, TransactionBuilder } from "@orca-so/whirlpool-client-sdk";
export declare class OrcaPosition {
    private readonly dal;
    constructor(dal: OrcaDAL);
    /*** Utilities ***/
    /**
     * Derive the position pda given position mint
     *
     * @param positionMint
     * @returns
     */
    derivePDA(positionMint: Address): PDA;
    /*** Transactions ***/
    /**
     * Construct a transaction for adding liquidity to an existing pool
     */
    getAddLiquidityTx(param: AddLiquidityTxParam): Promise<TransactionBuilder>;
    /**
     * Construct a transaction for removing liquidity from an existing pool
     */
    getRemoveLiquidityTx(param: RemoveLiquidityTxParam): Promise<TransactionBuilder>;
    /**
     * Construct a transaction for collecting fees and rewards from an existing pool
     */
    getCollectFeesAndRewardsTx(param: CollectFeesAndRewardsTxParam): Promise<TransactionBuilder>;
    /**
     * Construct a transaction for collecting fees and rewards from a list of  existing pools
     */
    getCollectMultipleFeesAndRewardsTx(param: CollectMultipleFeesAndRewardsTxParam): Promise<MultiTransactionBuilder>;
    /*** Quotes ***/
    /**
     * Construct a quote for adding liquidity to an existing pool
     */
    getAddLiquidityQuote(param: AddLiquidityQuoteParam): Promise<AddLiquidityQuote>;
    /**
     * Construct a quote for removing liquidity from an existing pool
     */
    getRemoveLiquidityQuote(param: RemoveLiquidityQuoteParam): Promise<RemoveLiquidityQuote>;
}
