import { ID, SuiClient } from "../../types";
import { OPERATORS, PRUNE_TABLES_INDEX } from "../enums";
import { IPerpetualConfig } from "../interfaces";
import { MarketName } from "../types";
import { Address } from "../../types";
export default class Store {
    /**
     * Fetches the content of perpetual from the store. The store id could belong to EDS or IDS
     * @param suiClient Sui Client
     * @param storeID The id/address of the store. Could belong to EDS or IDS
     * @param perpName The symbol/name of the perpetual to be fetched
     * @param isExternalStore (optional) defaults to false
     * @returns
     */
    static getPerpetualFromStore(suiClient: SuiClient, storeID: string, perpName: MarketName, isExternalStore?: boolean): Promise<IPerpetualConfig>;
    /**
     * Fetches the whitelisted  operator address from the provided store
     * @param suiClient Sui Client
     * @param storeID The id/address of the internal store
     * @param operator The name of the operator to query
     * @returns address of funding operator if set else returns ZERO address
     */
    static getOperator(suiClient: SuiClient, storeID: string, operator: OPERATORS): Promise<Address>;
    /**
     * Returns the keys of the requested table
     * @param suiClient Sui Client
     * @param storeID The id/address of the internal store
     * @param table_index The table index for which to get keys
     * @param maxLimit The max number of hashes to be returned
     */
    static getTableKeys(suiClient: SuiClient, storeID: string, table_index: PRUNE_TABLES_INDEX, maxLimit?: number): Promise<Array<Uint8Array>>;
    /**
     * Returns the whitelisted bankrupt liquidators
     * @param suiClient Sui Client
     * @param storeID The id/address of the internal store
     * @param type the table type for which to get keys
     * @param maxLimit The max number of hashes to be returned
     */
    static getLiquidators(suiClient: SuiClient, storeID: Address | ID): Promise<Array<Address>>;
}
