/// <reference types="bn.js" />
import { Address, BN, Provider } from "@project-serum/anchor";
import { PublicKey } from "@solana/web3.js";
import { Percentage } from "../../utils/public/percentage";
/*** Transactions ***/
export declare type AddLiquidityTxParam = {
    provider: Provider;
    quote: AddLiquidityQuote;
};
export declare type RemoveLiquidityTxParam = {
    provider: Provider;
    quote: RemoveLiquidityQuote;
};
export declare type CollectFeesAndRewardsTxParam = {
    provider: Provider;
    positionAddress: Address;
    resolvedAssociatedTokenAddresses?: Record<string, PublicKey>;
};
export declare type CollectMultipleFeesAndRewardsTxParam = {
    provider: Provider;
    positionAddresses: Address[];
    resolvedAssociatedTokenAddresses?: Record<string, PublicKey>;
};
/*** Quotes ***/
export declare type AddLiquidityQuoteParam = {
    positionAddress: Address;
    tokenMint: Address;
    tokenAmount: BN;
    refresh: boolean;
    slippageTolerance?: Percentage;
};
export declare type AddLiquidityQuote = {
    positionAddress: Address;
    maxTokenA: BN;
    maxTokenB: BN;
    estTokenA: BN;
    estTokenB: BN;
    liquidity: BN;
};
export declare type RemoveLiquidityQuoteParam = {
    positionAddress: Address;
    liquidity: BN;
    refresh: boolean;
    slippageTolerance?: Percentage;
};
export declare type RemoveLiquidityQuote = {
    positionAddress: Address;
    minTokenA: BN;
    minTokenB: BN;
    estTokenA: BN;
    estTokenB: BN;
    liquidity: BN;
};
export declare type CollectFeesQuote = {
    feeOwedA: BN;
    feeOwedB: BN;
};
export declare type CollectRewardsQuote = [BN | undefined, BN | undefined, BN | undefined];
