import type { Callback } from "../../util/function.js";
import type { APIProvider } from "./APIProvider.js";
import { ThroughAPIProvider } from "./ThroughAPIProvider.js";
/**
 * Provider that logs fetches to the console to keep useful logs in production.
 * - Defaults to calling `console.log()` for requests/responses and
 */
export declare class LoggingAPIProvider<P, R> extends ThroughAPIProvider<P, R> {
    protected _logRequest: Callback<[Request]>;
    protected _logResponse: Callback<[Response, Request]>;
    protected _logError: Callback<[reason: unknown, Request]>;
    constructor(source: APIProvider<P, R>, 
    /** Log requests. */
    onRequest?: Callback<[Request]>, 
    /** Log responses to requests. */
    onResponse?: Callback<[Response, Request]>, 
    /** Log errors for requests. */
    onError?: Callback<[reason: unknown, Request]>);
    fetch(request: Request): Promise<Response>;
}
