/// <amd-module name="file:///home/runner/work/hyperliquid/hyperliquid/src/api/info/_methods/perpDexs.ts" />
import * as v from "valibot";
/**
 * Request all perpetual dexs.
 * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-all-perpetual-dexs
 */
export declare const PerpDexsRequest: v.ObjectSchema<{
    /** Type of request. */
    readonly type: v.LiteralSchema<"perpDexs", undefined>;
}, undefined>;
export type PerpDexsRequest = v.InferOutput<typeof PerpDexsRequest>;
/**
 * Array of perpetual dexes (null is main dex).
 * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-all-perpetual-dexs
 */
export type PerpDexsResponse = (/** Perpetual dex metadata. */ {
    /** Short name of the perpetual dex. */
    name: string;
    /** Complete name of the perpetual dex. */
    fullName: string;
    /**
     * Hex address of the dex deployer.
     * @pattern ^0x[a-fA-F0-9]{40}$
     */
    deployer: `0x${string}`;
    /**
     * Hex address of the oracle updater, or null if not available.
     * @pattern ^0x[a-fA-F0-9]{40}$
     */
    oracleUpdater: `0x${string}` | null;
    /**
     * Hex address of the fee recipient, or null if not available.
     * @pattern ^0x[a-fA-F0-9]{40}$
     */
    feeRecipient: `0x${string}` | null;
    /** Mapping of asset symbols to their streaming open interest caps. */
    assetToStreamingOiCap: [
        /** Asset symbol (e.g., xyz:AAPL). */
        asset: string,
        /**
         * Streaming open interest cap.
         * @pattern ^[0-9]+(\.[0-9]+)?$
         */
        oiCap: string
    ][];
    /** List of delegated function names and their authorized executor addresses. */
    subDeployers: [
        /** Function name. */
        functionName: string,
        /**
         * Authorized executor addresses.
         * @pattern ^0x[a-fA-F0-9]{40}$
         */
        executors: `0x${string}`[]
    ][];
    /**
     * Fee scale applied to deployer fees.
     * @pattern ^[0-9]+(\.[0-9]+)?$
     */
    deployerFeeScale: string;
    /**
     * ISO 8601 timestamp (without timezone) of the last deployer fee scale change.
     * @pattern ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?$
     */
    lastDeployerFeeScaleChangeTime: string;
    /** Array of tuples mapping asset symbols to their funding multipliers. */
    assetToFundingMultiplier: [
        /** Asset symbol (e.g., xyz:AAPL). */
        asset: string,
        /**
         * Funding multiplier.
         * @pattern ^[0-9]+(\.[0-9]+)?$
         */
        multiplier: string
    ][];
    /** Array of tuples mapping asset symbols to their funding interest rates. */
    assetToFundingInterestRate: [
        /** Asset symbol (e.g., xyz:AAPL). */
        asset: string,
        /**
         * Funding interest rate.
         * @pattern ^-?[0-9]+(\.[0-9]+)?$
         */
        rate: string
    ][];
} | null)[];
import type { InfoConfig } from "./_base/mod.js";
/**
 * Request all perpetual dexs.
 *
 * @param config General configuration for Info API requests.
 * @param signal {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | AbortSignal} to cancel the request.
 * @return Array of perpetual dexes (null is main dex).
 *
 * @throws {ValidationError} When the request parameters fail validation (before sending).
 * @throws {TransportError} When the transport layer throws an error.
 *
 * @example
 * ```ts
 * import { HttpTransport } from "@nktkas/hyperliquid";
 * import { perpDexs } from "@nktkas/hyperliquid/api/info";
 *
 * const transport = new HttpTransport(); // or `WebSocketTransport`
 *
 * const data = await perpDexs({ transport });
 * ```
 *
 * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-all-perpetual-dexs
 */
export declare function perpDexs(config: InfoConfig, signal?: AbortSignal): Promise<PerpDexsResponse>;
