import { PositionQueryConfig, RewardMetric } from './types';
import { LpPosition, PyPosition, QueryYieldParams } from './types/position';
import { ClaimRewardConfig } from './types/rewards';
export declare class PositionQuery {
    private client;
    private graphqlEndpoint;
    constructor({ rpcUrl, network }: PositionQueryConfig);
    /**
   * 通用的GraphQL分页查询方法
   */
    private queryGraphQLWithPagination;
    /**
     * Query LP Position data
     */
    queryLpPositions(options: {
        address: string;
        maturity?: string;
        marketStateId?: string;
        positionTypes: string[];
    }): Promise<LpPosition[]>;
    /**
     * Query PY Position data (including PT and YT balance)
     */
    queryPyPositions(options: {
        address: string;
        positionTypes: string[];
        maturity?: string;
        pyStateId?: string;
    }): Promise<PyPosition[]>;
    /**
     * Query total PT and YT balances (sum of all PY Positions)
     */
    queryPyBalance(options: {
        address: string;
        maturity?: string;
        pyStateId?: string;
        positionTypes: string[];
    }): Promise<{
        ptBalance: string;
        ytBalance: string;
    }>;
    /**
     * Query total LP balance (sum of all LP Positions)
     */
    queryLpBalance(options: {
        address: string;
        positionTypes: string[];
        maturity?: string;
        marketStateId?: string;
    }): Promise<string>;
    /**
     * Query YT Yield amount (simulate redeem_due_interest)
     */
    queryYield({ config, address, ytBalance, pyPositions, receivingType, }: QueryYieldParams): Promise<{
        outputValue: string;
        outputAmount: string;
    }>;
    /**
     * Query PY Position holders count using GraphQL
     * 统计持有特定类型PY Position的用户数量，PT和YT分开统计
     */
    queryPyPositionHoldersCount(options: {
        positionTypes: string[];
        maturity?: string;
        pyStateId?: string;
        pageSize?: number;
    }): Promise<{
        ptHolders: number;
        ytHolders: number;
        totalHolders: number;
        holdersByType: Record<string, {
            ptHolders: number;
            ytHolders: number;
        }>;
        totalPositions: number;
    }>;
    /**
     * Query LP Position holders count using GraphQL
     * 统计持有特定类型LP Position的用户数量
     */
    queryLpPositionHoldersCount(options: {
        positionTypes: string[];
        maturity?: string;
        marketStateId?: string;
        pageSize?: number;
    }): Promise<{
        totalHolders: number;
        holdersByType: Record<string, number>;
        totalPositions: number;
    }>;
    /**
     * Query rewards for multiple reward metrics
     */
    queryRewards(options: {
        address: string;
        config: Omit<ClaimRewardConfig, "syCoinType">;
        lpPositions: LpPosition[];
        rewardMetrics: RewardMetric[];
    }): Promise<Array<{
        coinType: string;
        coinName: string;
        amount: string;
    }>>;
}
//# sourceMappingURL=PositionQuery.d.ts.map