import { IHttpRequest } from '../../models/HttpRequest.js';
import { IRequestLog } from '../../models/RequestLog.js';
import { IProjectExecutionLog } from '../../models/ProjectExecution.js';
import { IRequestProxyInit } from '../../proxy/RequestProxy.js';
import { IHttpProjectProxyInit, IHttpProjectStoreProxyInit } from '../../proxy/HttpProjectProxy.js';
import { IProxyResult } from '../../proxy/Proxy.js';
export interface IHttpRequestDetail {
    request: IHttpRequest;
    init?: RequestInit;
}
export declare const TransportEvent: Readonly<{
    /**
     * Transport via the CoreEngine.
     */
    Core: Readonly<{
        /**
         * Sends a single request without a context of a project.
         *
         * @param target The events target.
         * @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.
         */
        request: (init: IRequestProxyInit, target?: EventTarget) => Promise<IProxyResult<IRequestLog> | undefined>;
        /**
         * For both the project or a folder (since it's all single configuration.)
         *
         * @param target The events target
         * @param init The project execution configuration
         */
        httpProject: (init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit, target?: EventTarget) => Promise<IProxyResult<IProjectExecutionLog> | undefined>;
    }>;
    /**
     * Transport via the native platform's bindings.
     */
    Http: Readonly<{
        /**
         * Sends the request outside the Core engine, most probably using Fetch API.
         * Note, CORS may apply to the request.
         *
         * @param target The events target
         * @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 or `undefined` when the event was not handled.
         */
        send: (request: IHttpRequest, init?: RequestInit, target?: EventTarget) => Promise<Response | undefined>;
    }>;
    Ws: Readonly<{
        /**
         * Informs to make a connection. Used by web sockets.
         */
        connect: (target: EventTarget) => Promise<any>;
        /**
         * Informs to close the current connection. Used by web sockets.
         */
        disconnect: (target: EventTarget) => Promise<any>;
        /**
         * Informs to send a data on the current connection. Used by web sockets.
         */
        send: (target: EventTarget) => Promise<any>;
    }>;
}>;
//# sourceMappingURL=TransportEvents.d.ts.map