import { Address, Rpc, SolanaRpcApi } from '@solana/kit';
import Decimal from 'decimal.js';
import { PoolData } from '@orca-so/whirlpool-sdk';
import { OrcaWhirlpoolsResponse, Whirlpool } from './OrcaWhirlpoolsResponse';
import { SolanaCluster } from '@hubbleprotocol/hubble-config';
import { WhirlpoolStrategy } from '../@codegen/kliquidity/accounts';
import { WhirlpoolAprApy } from './WhirlpoolAprApy';
import { GenericPoolInfo, LiquidityDistribution } from '../utils';
import { CollateralInfo } from '../@codegen/kliquidity/types';
import { KaminoPrices } from '../models';
import { Connection } from '@solana/web3.js';
export declare class OrcaService {
    private readonly _rpc;
    private readonly _legacyConnection;
    private readonly _whirlpoolProgramId;
    private readonly _orcaNetwork;
    private readonly _orcaApiUrl;
    constructor(rpc: Rpc<SolanaRpcApi>, legacyConnection: Connection, cluster: SolanaCluster, whirlpoolProgramId?: Address);
    getWhirlpoolProgramId(): Address;
    getOrcaWhirlpools(): Promise<OrcaWhirlpoolsResponse>;
    /**
     * Get token prices for a strategy - for use with orca sdk
     * @param strategy
     * @param prices
     * @param collateralInfos
     * @returns {Record<string, Decimal>} - token prices by mint string
     * @private
     */
    private getTokenPrices;
    private getPoolTokensPrices;
    getPool(poolAddress: Address): Promise<PoolData | null>;
    getStrategyWhirlpoolPoolAprApy(strategy: WhirlpoolStrategy, collateralInfos: CollateralInfo[], prices: KaminoPrices, whirlpools?: Whirlpool[]): Promise<WhirlpoolAprApy>;
    getWhirlpoolLiquidityDistribution(pool: Address, keepOrder?: boolean, lowestTick?: number, highestTick?: number): Promise<LiquidityDistribution>;
    getWhirlpoolPositionAprApy(poolPubkey: Address, priceLower: Decimal, priceUpper: Decimal, prices: KaminoPrices, whirlpools?: Whirlpool[]): Promise<WhirlpoolAprApy>;
    getGenericPoolInfo(poolPubkey: Address, whirlpools?: Whirlpool[]): Promise<GenericPoolInfo>;
    getPositionsCountByPool(pool: Address): Promise<number>;
}
//# sourceMappingURL=OrcaService.d.ts.map