import z from "zod";
import { ActionProvider } from "../../actionProvider";
import { EvmWalletProvider } from "../../../walletProviders";
import { Network } from "../../../network";
import { GetTokenDetailsSchema, QueryGetSushiAllTokens } from "../schemas";
/**
 * SushiSwapTokenActions provides utilities for retrieving token metadata and listings from SushiSwap.
 *
 * This action group focuses on token-related operations, including:
 * - Fetching metadata (name, symbol, decimals) for a specific token via SushiSwap’s pricing API
 * - Querying a paginated list of all tokens available on SushiSwap using The Graph’s subgraph
 *
 * Responsibilities:
 * - Use on-chain or indexed APIs to fetch metadata for ERC-20 tokens on supported EVM chains
 * - Support pagination and API key–secured access to the SushiSwap subgraph
 *
 * Registered under the action provider key: `sushiSwap.token`
 *
 * Note:
 * - Requires a valid `subGraphApiKey` for subgraph queries.
 * - Only EVM-compatible chains are supported.
 */
export declare class SushiSwapTokenActions extends ActionProvider<EvmWalletProvider> {
    private readonly subGraphApiKey;
    constructor(subGraphApiKey: string);
    /**
     * Fetches metadata for a token (e.g., decimals, symbol, name) from SushiSwap's public API.
     *
     * @param walletProvider - Instance of EVM-compatible WalletProvider
     * @param args - Includes `tokenAddress` of the token to fetch metadata for
     * @returns A JSON string containing token metadata
     * @throws If the API call fails or the token is unsupported
     */
    getTokenDetails(walletProvider: EvmWalletProvider, args: z.infer<typeof GetTokenDetailsSchema>): Promise<string>;
    /**
     * Fetches a paginated list of all tokens available on SushiSwap from the subgraph for the connected EVM chain.
     *
     * @param walletProvider - Instance of EVM-compatible WalletProvider.
     * @param args - Object containing `skip` and `first` for pagination control.
     * @returns A JSON string representing the array of tokens including id, name, symbol, poolCount, and volume.
     * @throws If the connected network's chainId is missing or the subgraph query fails.
     *
     * Notes:
     * - Uses The Graph's SushiSwap subgraph endpoint.
     * - Requires a valid `subGraphApiKey` to authenticate the query request.
     * - Supports pagination using `skip` (default: 0) and `first` (default: 50).
     */
    getAllSushiTokens(walletProvider: EvmWalletProvider, args: z.infer<typeof QueryGetSushiAllTokens>): Promise<string>;
    supportsNetwork: (network: Network) => boolean;
}
