import { ContextEvent, IRequestLog, IHttpRequest, IHttpRequestDetail, IProjectExecutionLog, IRequestProxyInit, IProxyResult, IHttpProjectProxyInit, IHttpProjectStoreProxyInit } from '@api-client/core/build/browser.js';
import { PlatformBindings } from './PlatformBindings.js';
/**
 * The bindings for making HTTP request in the application.
 * The purpose is to run API requests using the `CoreEngine` class or
 * to run entire projects or folders.
 */
export declare abstract class ProxyBindings extends PlatformBindings {
    /**
     * This is used by the client side (main thread or the renderer process)
     * to define the current space the app is using.
     * This space is used in some APIs instead of adding the space to the events system.
     */
    space: string;
    initialize(): Promise<void>;
    protected handleCoreRequest(e: ContextEvent<IRequestProxyInit, IProxyResult<IRequestLog>>): void;
    protected handleHttpProject(e: ContextEvent<IHttpProjectProxyInit | IHttpProjectStoreProxyInit, IProxyResult<IProjectExecutionLog>>): void;
    protected handlerHttpSend(e: ContextEvent<IHttpRequestDetail, Response>): void;
    /**
     * Sends a single request without a context of a project.
     *
     * @param init The request execution configuration
     * @returns The execution log with the variables evaluated during the run or `undefined` when the event was not handled.
     */
    abstract coreRequest(init: IRequestProxyInit): Promise<IProxyResult<IRequestLog>>;
    /**
     * For both a request or a folder (since it's all single configuration.)
     *
     * @param init The project execution configuration
     * @returns The project execution log.
     */
    abstract coreHttpProject(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog>>;
    /**
     * Sends the request outside the Core engine, most probably using Fetch API.
     * Note, CORS may apply to the request.
     *
     * @param request The base request definition.
     * @param init Optional request init options compatible with the Fetch API.
     * @returns Compatible with the Fetch API Response object.
     */
    abstract httpSend(request: IHttpRequest, init?: RequestInit): Promise<Response>;
}
//# sourceMappingURL=ProxyBindings.d.ts.map