import { ApiLeveragedStakePositionBody, ApiLeveragedStakePositionResponse, LeveragedAfSuiState, Balance, LeveragedStakingPerformanceDataBody, LeveragedStakingPerformanceDataPoint, LeveragedStakingEvent, ApiIndexerUserEventsBody, CallerConfig } from "../../types";
import { Caller } from "../../general/utils/caller";
/**
 * Represents the Leveraged Staking module.
 */
export declare class LeveragedStaking extends Caller {
    /**
     * Creates an instance of the LeveragedStaking class.
     * @param network The network to connect to.
     */
    constructor(config?: CallerConfig);
    /**
     * Retrieves the leveraged stake position.
     * @param inputs The input parameters for the API request.
     * @returns A Promise that resolves to the API response.
     */
    getLeveragedStakePosition(inputs: ApiLeveragedStakePositionBody): Promise<ApiLeveragedStakePositionResponse>;
    /**
     * Retrieves the Leveraged AfSui state.
     * @returns A Promise that resolves to the LeveragedAfSuiState object.
     */
    getLeveragedAfSuiState(): Promise<LeveragedAfSuiState>;
    /**
     * Retrieves the SUI market pool.
     * @returns A promise that resolves to a ScallopMarketPool object.
     */
    getSuiMarketPool(): Promise<any>;
    /**
     * Retrieves the AfSui market collateral.
     * @returns A promise that resolves to a `ScallopMarketCollateral` object.
     */
    getAfSuiMarketCollateral(): Promise<any>;
    /**
     * Retrieves events for a specific user.
     * @param inputs The input parameters for the API request.
     * @returns A promise that resolves to the fetched events.
     */
    getEventsForUser(inputs: ApiIndexerUserEventsBody): Promise<import("../../types").EventsWithCursor<LeveragedStakingEvent>>;
    /**
     * Retrieves the performance data for leveraged staking.
     * @param inputs - The input parameters for fetching performance data.
     * @returns A promise that resolves to an array of LeveragedStakingPerformanceDataPoint objects.
     */
    getPerformanceData(inputs: LeveragedStakingPerformanceDataBody): Promise<LeveragedStakingPerformanceDataPoint[]>;
    /**
     * Calculates the leverage based on the provided inputs.
     * @param inputs - The inputs required for leverage calculation.
     * @returns The calculated leverage.
     */
    static calcLeverage: (inputs: {
        totalAfSuiCollateral: Balance;
        totalSuiDebt: Balance;
        afSuiToSuiExchangeRate: number;
    }) => number;
    /**
     * Calculates the total SUI debt based on the provided inputs.
     *
     * @param inputs - The inputs required for the calculation.
     * @returns The total SUI debt as a Balance.
     */
    static calcTotalSuiDebt: (inputs: {
        leverage: number;
        totalAfSuiCollateral: Balance;
        afSuiToSuiExchangeRate: number;
    }) => Balance;
    private static calcLeverageNormalized;
}
//# sourceMappingURL=leveragedStaking.d.ts.map