import { type AuthIdentity, type SignedRequestInit } from 'decentraland-crypto-fetch'; export type BaseClientConfig = { identity?: AuthIdentity | ((...args: unknown[]) => AuthIdentity | undefined); /** The number of retries if the request fails */ retries?: number; /** The delay between retries if the request fails */ retryDelay?: number; /** The status numbers that would not be retried */ nonRetryableStatuses?: number[]; }; export declare abstract class BaseClient { protected readonly baseUrl: string; private readonly retries; private readonly retryDelay; private readonly nonRetryableStatuses; private readonly identity; constructor(url: string, config?: BaseClientConfig); private sleep; protected getIdentity: () => AuthIdentity | undefined; protected rawFetch: (path: string, init?: SignedRequestInit) => Promise; protected fetch: (path: string, init?: SignedRequestInit) => Promise; }