import { Address } from "@solana/kit";
import BN from "bn.js";
import * as types from "../types";
export interface LiqPoolFields {
    lpMint: Address;
    lpMintAuthorityBumpSeed: number;
    solLegBumpSeed: number;
    msolLegAuthorityBumpSeed: number;
    msolLeg: Address;
    /** Liquidity target. If the Liquidity reach this amount, the fee reaches lp_min_discount_fee */
    lpLiquidityTarget: BN;
    /** Liquidity pool max fee */
    lpMaxFee: types.FeeFields;
    /** SOL/mSOL Liquidity pool min fee */
    lpMinFee: types.FeeFields;
    /** Treasury cut */
    treasuryCut: types.FeeFields;
    lpSupply: BN;
    lentFromSolLeg: BN;
    liquiditySolCap: BN;
}
export interface LiqPoolJSON {
    lpMint: string;
    lpMintAuthorityBumpSeed: number;
    solLegBumpSeed: number;
    msolLegAuthorityBumpSeed: number;
    msolLeg: string;
    /** Liquidity target. If the Liquidity reach this amount, the fee reaches lp_min_discount_fee */
    lpLiquidityTarget: string;
    /** Liquidity pool max fee */
    lpMaxFee: types.FeeJSON;
    /** SOL/mSOL Liquidity pool min fee */
    lpMinFee: types.FeeJSON;
    /** Treasury cut */
    treasuryCut: types.FeeJSON;
    lpSupply: string;
    lentFromSolLeg: string;
    liquiditySolCap: string;
}
export declare class LiqPool {
    readonly lpMint: Address;
    readonly lpMintAuthorityBumpSeed: number;
    readonly solLegBumpSeed: number;
    readonly msolLegAuthorityBumpSeed: number;
    readonly msolLeg: Address;
    /** Liquidity target. If the Liquidity reach this amount, the fee reaches lp_min_discount_fee */
    readonly lpLiquidityTarget: BN;
    /** Liquidity pool max fee */
    readonly lpMaxFee: types.Fee;
    /** SOL/mSOL Liquidity pool min fee */
    readonly lpMinFee: types.Fee;
    /** Treasury cut */
    readonly treasuryCut: types.Fee;
    readonly lpSupply: BN;
    readonly lentFromSolLeg: BN;
    readonly liquiditySolCap: BN;
    constructor(fields: LiqPoolFields);
    static layout(property?: string): import("buffer-layout").Layout<unknown>;
    static fromDecoded(obj: any): types.LiqPool;
    static toEncodable(fields: LiqPoolFields): {
        lpMint: Address;
        lpMintAuthorityBumpSeed: number;
        solLegBumpSeed: number;
        msolLegAuthorityBumpSeed: number;
        msolLeg: Address;
        lpLiquidityTarget: BN;
        lpMaxFee: {
            basisPoints: number;
        };
        lpMinFee: {
            basisPoints: number;
        };
        treasuryCut: {
            basisPoints: number;
        };
        lpSupply: BN;
        lentFromSolLeg: BN;
        liquiditySolCap: BN;
    };
    toJSON(): LiqPoolJSON;
    static fromJSON(obj: LiqPoolJSON): LiqPool;
    toEncodable(): {
        lpMint: Address;
        lpMintAuthorityBumpSeed: number;
        solLegBumpSeed: number;
        msolLegAuthorityBumpSeed: number;
        msolLeg: Address;
        lpLiquidityTarget: BN;
        lpMaxFee: {
            basisPoints: number;
        };
        lpMinFee: {
            basisPoints: number;
        };
        treasuryCut: {
            basisPoints: number;
        };
        lpSupply: BN;
        lentFromSolLeg: BN;
        liquiditySolCap: BN;
    };
}
//# sourceMappingURL=LiqPool.d.ts.map