import { Api, ApiConfig, HttpResponse } from "./openapi/client.js";
import type { RateLimitFetchConfig } from "./rate_limit_fetch.js";
export interface LagoClientConfig extends ApiConfig {
    /**
     * Rate limit retry configuration
     */
    rateLimitRetry?: RateLimitFetchConfig;
}
export declare const Client: (apiKey: string, apiConfig?: LagoClientConfig) => Api<unknown>;
type ExtractLagoError<E> = E extends (...args: any) => Promise<HttpResponse<infer T, infer P>> ? P : never;
export declare function getLagoError<T>(error: any): Promise<ExtractLagoError<T>>;
export { LagoRateLimitError } from "./rate_limit_error.js";
export { parseRateLimitHeaders, parseRateLimitInfo, type RateLimitHeaders, type RateLimitInfo, rateLimitUsagePct, } from "./rate_limit_headers.js";
export { createRateLimitFetch, type RateLimitFetchConfig, type RateLimitInfoCallback, } from "./rate_limit_fetch.js";
export { DEFAULT_RATE_LIMIT_THRESHOLDS, loggingRateLimitObserver, type LoggingRateLimitObserverOptions, } from "./logging_rate_limit_observer.js";
export * from "./openapi/client.js";
export type { LagoWebhookPayload, LagoWebhookPayloads, LagoWebhookType, WebhookOf, } from "./webhook_types.js";
