import { Pools } from "../../packages/pools/pools";
import { CoinType, ConfigAddresses, SuiAddress, SuiNetwork, Url } from "../../types";
import { Wallet } from "../wallet/wallet";
import { SuiFrens } from "../../packages/suiFrens/suiFrens";
import { Coin } from "../../packages/coin/coin";
import { Faucet } from "../../packages/faucet/faucet";
import { Staking } from "../../packages/staking/staking";
import { Helpers } from "../utils/helpers";
import { Casting } from "../utils/casting";
import { Caller } from "../utils/caller";
import { Prices } from "../prices/prices";
import { LeveragedStaking, NftAmm, ReferralVault, Router, Sui } from "../../packages";
import { HistoricalData } from "../historicalData/historicalData";
import { Perpetuals } from "../../packages/perpetuals";
import { Oracle } from "../../packages/oracle/oracle";
import { Farms } from "../../packages/farms/farms";
import { DynamicGas } from "../dynamicGas/dynamicGas";
import { AftermathApi } from "./aftermathApi";
import { Dca } from "../../packages/dca/dca";
/**
 * @class Aftermath Provider
 *
 * @example
 * ```
 * // Create provider
 * const aftermath = new Aftermath("MAINNET");
 * // Create package provider
 * const router = aftermath.Router();
 * // Call sdk from package provider
 * const supportedCoins = await router.getSupportedCoins();
 *
 * // Or do it all in one go
 * const supportedCoins = await (new Aftermath("MAINNET")).Router().getSupportedCoins();
 * ```
 */
export declare class Aftermath extends Caller {
    private Provider?;
    /**
     * Creates `Aftermath` provider to call api.
     *
     * @param network - The Sui network to interact with
     * @returns New `Aftermath` instance
     */
    constructor(network?: SuiNetwork, Provider?: AftermathApi | undefined);
    init(inputs?: {
        fullnodeUrl: Url;
    }): Promise<void>;
    /**
     * Retrieves the addresses from the Aftermath API.
     * @returns A promise that resolves to a ConfigAddresses object.
     */
    getAddresses(): Promise<ConfigAddresses>;
    getApiBaseUrl(): string | undefined;
    /**
     * Returns an instance of the Pools class.
     * @returns {Pools} An instance of the Pools class.
     */
    Pools: () => Pools;
    /**
     * Creates a new instance of the Staking class.
     * @returns A new instance of the Staking class.
     */
    Staking: () => Staking;
    LeveragedStaking: () => LeveragedStaking;
    SuiFrens: () => SuiFrens;
    Faucet: () => Faucet;
    /**
     * Creates a new instance of the Router class with the current network.
     * @returns A new instance of the Router class.
     */
    Router: () => Router;
    NftAmm: () => NftAmm;
    ReferralVault: () => ReferralVault;
    Perpetuals: () => Perpetuals;
    Oracle: () => Oracle;
    /**
     * Creates a new instance of the Farms class.
     * @returns A new instance of the Farms class.
     */
    Farms: () => Farms;
    /**
     * Creates a new instance of the DCA class.
     * @returns A new instance of the DCA class.
     */
    Dca: () => Dca;
    Sui: () => Sui;
    Prices: () => Prices;
    /**
     * Creates a new instance of the Wallet class.
     * @param address - The address of the wallet.
     * @returns A new instance of the Wallet class.
     */
    Wallet: (address: SuiAddress) => Wallet;
    /**
     * Creates a new instance of the Coin class.
     * @param coinType The type of coin to create.
     * @returns A new instance of the Coin class.
     */
    Coin: (coinType?: CoinType) => Coin;
    HistoricalData: () => HistoricalData;
    DynamicGas: () => DynamicGas;
    static helpers: typeof Helpers;
    static casting: typeof Casting;
}
//# sourceMappingURL=aftermath.d.ts.map