import type * as core from "./core";
import type * as environments from "./environments";
export interface BaseClientOptions {
    environment?: core.Supplier<environments.CohereEnvironment | string>;
    /** Specify a custom URL to connect the client to. */
    baseUrl?: core.Supplier<string>;
    token?: core.Supplier<core.BearerToken | undefined>;
    /** Override the X-Client-Name header */
    clientName?: core.Supplier<string | undefined>;
    /** Additional headers to include in requests. */
    headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
    /** The default maximum time to wait for a response in seconds. */
    timeoutInSeconds?: number;
    /** The default number of times to retry the request. Defaults to 2. */
    maxRetries?: number;
    /** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */
    fetch?: typeof fetch;
    fetcher?: core.FetchFunction;
    /** Configure logging for the client. */
    logging?: core.logging.LogConfig | core.logging.Logger;
}
export interface BaseRequestOptions {
    /** The maximum time to wait for a response in seconds. */
    timeoutInSeconds?: number;
    /** The number of times to retry the request. Defaults to 2. */
    maxRetries?: number;
    /** A hook to abort the request. */
    abortSignal?: AbortSignal;
    /** Override the X-Client-Name header */
    clientName?: string | undefined;
    /** Additional query string parameters to include in the request. */
    queryParams?: Record<string, unknown>;
    /** Additional headers to include in the request. */
    headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
}
