import { IHttpRequest, IRequestLog, IProjectExecutionLog, IApplication, IRequestProxyInit, IProxyResult, IHttpProjectProxyInit, IHttpProjectStoreProxyInit } from "@api-client/core/build/browser.js";
import { ProxyBindings } from "../base/ProxyBindings.js";
export interface IWebProxyInit {
    /**
     * Whether to use the current store environment to send the authentication credentials
     * with the proxy request. This is required when using the `net-store`.
     *
     * @default false
     */
    authenticate?: boolean;
}
/**
 * A class that acts as an HTTP proxy for the application.
 * Since the Project runner and the CoreEngine are strictly NodeJS modules, this needs to proxy the request to the server that supports
 * this API to make the request.
 *
 * When using the proxy, the logic first sends request to the proxy with initialization values: the request data, authorization, and configuration.
 * In response, the proxy server responds with a URL (or a path) to use to send the body. The method of the request is used with the second request.
 * The proxy detects payload for requests other than GET and HEAD.
 */
export declare class WebProxyBindings extends ProxyBindings {
    proxyUrl: string;
    /**
     * Whether to use the current store environment to send the authentication credentials
     * with the proxy request. This is required when using the `net-store`.
     */
    protected authenticate: boolean;
    /**
     * @param app The application information
     * @param proxyUrl The base URI to the HTTP proxy.
     * @param authenticate Whether to use the current store environment to send authentication credentials.
     */
    constructor(app: IApplication, proxyUrl: string, init?: IWebProxyInit);
    protected listHeaders(): Promise<Record<string, string>>;
    protected proxy(body: IRequestProxyInit | IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult>;
    coreRequest(init: IRequestProxyInit): Promise<IProxyResult<IRequestLog>>;
    coreHttpProject(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog>>;
    httpSend(request: IHttpRequest, init?: RequestInit): Promise<Response>;
}
//# sourceMappingURL=WebProxyBindings.d.ts.map