import { Connection, PublicKey } from '@solana/web3.js';
import Decimal from 'decimal.js';
import { WhirlpoolStrategy } from '../kamino-client/accounts';
import { GenericPoolInfo, LiquidityDistribution } from '../utils';
import { LbPair, PositionV2 } from '../meteora_client/accounts';
import { WhirlpoolAprApy } from './WhirlpoolAprApy';
export interface MeteoraPool {
    key: PublicKey;
    pool: LbPair;
}
export declare class MeteoraService {
    private readonly _connection;
    private readonly _meteoraProgramId;
    constructor(connection: Connection, meteoraProgramId?: PublicKey);
    getMeteoraProgramId(): PublicKey;
    getPool(poolAddress: PublicKey): Promise<LbPair | null>;
    getPosition(position: PublicKey): Promise<PositionV2 | null>;
    getMeteoraPools(): Promise<MeteoraPool[]>;
    getStrategyMeteoraPoolAprApy(strategy: WhirlpoolStrategy): Promise<WhirlpoolAprApy>;
    getMeteoraLiquidityDistribution(poolKey: PublicKey, keepOrder?: boolean, lowestTick?: number, highestTick?: number): Promise<LiquidityDistribution>;
    getMeteoraPositionAprApy(poolPubkey: PublicKey, priceLower: Decimal, priceUpper: Decimal): Promise<WhirlpoolAprApy>;
    getGenericPoolInfo(poolPubkey: PublicKey): Promise<GenericPoolInfo>;
    getPositionsCountByPool(pool: PublicKey): Promise<number>;
}
export declare function computeMeteoraFee(pool: LbPair): Decimal;
//# sourceMappingURL=MeteoraService.d.ts.map