import { type PerpsSDKClient, type ResolvedRetryPolicy, type SDKRequestOptions } from '@lifi/perps-sdk'; /** @internal */ export declare const HYPERLIQUID_RETRY_DEFAULTS: ResolvedRetryPolicy; /** * Transport options for a direct Hyperliquid REST request. `policy` * controls retries, `signal` cancels the request, and `fetchImpl` overrides * the runtime's global `fetch` implementation. * @public */ export interface InfoRequestOptions { signal?: AbortSignal; policy?: ResolvedRetryPolicy; fetchImpl?: typeof fetch; } /** * Resolve the client's retry/fetch config into options for {@link infoRequest}. * * @public */ export declare const hlInfoOptions: (client: PerpsSDKClient, options?: SDKRequestOptions) => InfoRequestOptions; /** * POST a JSON body to a Hyperliquid REST surface and return the parsed body. * * Direct-to-venue: no proxy, no AJV validation, no cache. The caller's type * parameter is trusted; consumers should treat the response shape as * upstream-controlled and normalise into `@lifi/perps-types` shapes before * surfacing. * * Non-2xx responses raise a {@link PerpsError} tagged with the Hyperliquid * provider key, carrying the code the status resolves to: `RateLimitExceeded` * for a 429, `Unauthorized` for a 401, `AgentUnauthorized` for a 403, and * `ThirdPartyError` for every other status. A transport failure and a 2xx body * that is not JSON both raise `ServerError`, so every failure but a caller * abort reaches the caller as a `PerpsError`. An abort rejects untouched. * * @param label - Names the surface in the error message, e.g. `info request`. * @internal */ export declare function hlPostJson(url: string, label: string, body: Record, options?: InfoRequestOptions): Promise; /** * POST to the Hyperliquid `/info` endpoint and return the parsed JSON body. * See {@link hlPostJson} for the transport and error contract. * * @public */ export declare function infoRequest(apiUrl: string, body: Record, options?: InfoRequestOptions): Promise; //# sourceMappingURL=infoClient.d.ts.map