import { BaseHttpClient } from "@dicedhq/core"; import { Attributor, type AttributorConfig } from "../attributor/attributor.js"; import type { Credentials } from "../signer/signer.js"; import type { ConnectedWalletClient } from "../wallet/wallet.js"; /** * Base client configuration */ export type BaseClientConfig = { /** Wallet to use for L1 authentication */ wallet: ConnectedWalletClient; /** L2 API credentials (key, secret, passphrase) */ credentials: Credentials; /** Attributor of orders */ attributor?: AttributorConfig; /** Base URL for the CLOB API */ baseUrl?: string; /** Request timeout in milliseconds */ timeoutMs?: number; /** Maximum number of retries for failed requests */ maxRetries?: number; /** Enable debug logging */ debug?: boolean; }; export declare class BaseClient extends BaseHttpClient { readonly wallet: ConnectedWalletClient; readonly credentials: Credentials; readonly attributor?: Attributor; constructor({ wallet, credentials, attributor, baseUrl, timeoutMs, maxRetries, debug }: BaseClientConfig); /** * Make an authenticated or unauthenticated HTTP request * * @param method - HTTP method (GET, POST, DELETE) * @param path - Request path * @param options - Request options including auth type, body, and params * @returns Response data */ request({ method, path, auth, options }: { method: "GET" | "POST" | "DELETE"; path: `/${string}`; auth: { kind: "none"; } | { kind: "l1"; nonce: number; timestamp?: number; } | { kind: "l2"; headerArgs?: Record; } | { kind: "l2-with-attribution"; headerArgs?: Record; }; options?: { body?: Record | Record[]; params?: Record; }; }): Promise; private addAuthHeaders; } //# sourceMappingURL=base.d.ts.map