/**
 * Fluent interface for building a {@link Endpoint}.
 *
 * @public
 */
export default class EndpointBuilder {
    /**
     * Factory function for creating an {@link EndpointBuilder} instance.
     *
     * @public
     * @static
     * @param {string} name
     * @param {string=} description
     * @returns {EndpointBuilder}
     */
    public static for(name: string, description?: string | undefined): EndpointBuilder;
    /**
     * @param {string} name
     * @param {string=} description
     */
    constructor(name: string, description?: string | undefined);
    /**
     * The {@link Endpoint}, given all the information provided thus far.
     *
     * @public
     * @returns {Endpoint}
     */
    public get endpoint(): Endpoint;
    /**
     * Sets the verb.
     *
     * @public
     * @param {VerbType} verb
     * @returns {EndpointBuilder}
     */
    public withVerb(verb: VerbType): EndpointBuilder;
    /**
     * Sets the host.
     *
     * @public
     * @param {ProtocolType} protocol
     * @returns {EndpointBuilder}
     */
    public withProtocol(protocol: ProtocolType): EndpointBuilder;
    /**
     * Sets the host.
     *
     * @public
     * @param {string} host
     * @returns {EndpointBuilder}
     */
    public withHost(host: string): EndpointBuilder;
    /**
     * Sets the port.
     *
     * @public
     * @param {number} port
     * @returns {EndpointBuilder}
     */
    public withPort(port: number): EndpointBuilder;
    /**
     * Adds a {@link Parameters} collection, describing the request headers, using a callback.
     *
     * @public
     * @param {parametersBuilderCallback} callback
     * @returns {EndpointBuilder}
     */
    public withHeadersBuilder(callback: parametersBuilderCallback): EndpointBuilder;
    /**
     * Adds a {@link Parameters} collection, describing the request path, using a callback.
     *
     * @public
     * @param {parametersBuilderCallback} callback
     * @returns {EndpointBuilder}
     */
    public withPathBuilder(callback: parametersBuilderCallback): EndpointBuilder;
    /**
     * Adds a {@link Parameters} collection, describing the request querystring, using a callback.
     *
     * @public
     * @param {parametersBuilderCallback} callback
     * @returns {EndpointBuilder}
     */
    public withQueryBuilder(callback: parametersBuilderCallback): EndpointBuilder;
    /**
     * Adds a {@link Parameters} collection, describing the request body, using a callback.
     *
     * @public
     * @param {parametersBuilderCallback} callback
     * @returns {EndpointBuilder}
     */
    public withBodyBuilder(callback: parametersBuilderCallback): EndpointBuilder;
    /**
     * Adds a body to the request.
     *
     * @public
     * @param {string=} description - The human-readable description of the request body.
     * @returns {EndpointBuilder}
     */
    public withBody(description?: string | undefined): EndpointBuilder;
    /**
     * Adds basic authentication to the request.
     *
     * @public
     * @param {string} username
     * @param {string} password
     * @returns {EndpointBuilder}
     */
    public withBasicAuthentication(username: string, password: string): EndpointBuilder;
    /**
     * Adds basic authentication to the request, using a callback.
     *
     * @public
     * @param {Function} callback
     * @returns {EndpointBuilder}
     */
    public withBasicAuthenticationBuilder(callback: Function): EndpointBuilder;
    /**
     * Adds a {@link RequestInterceptor}.
     *
     * @public
     * @param {RequestInterceptor} requestInterceptor
     * @returns {EndpointBuilder}
     */
    public withRequestInterceptor(requestInterceptor: RequestInterceptor): EndpointBuilder;
    /**
     * Adds a {@link ResponseInterceptor} for successful web service responses.
     *
     * @public
     * @param {ResponseInterceptor} responseInterceptor
     * @returns {EndpointBuilder}
     */
    public withResponseInterceptor(responseInterceptor: ResponseInterceptor): EndpointBuilder;
    /**
     * Adds a {@link ErrorInterceptor} for handling remote web service errors.
     *
     * @public
     * @param {ErrorInterceptor} errorInterceptor
     * @returns {EndpointBuilder}
     */
    public withErrorInterceptor(errorInterceptor: ErrorInterceptor): EndpointBuilder;
    /**
     * Returns a string representation.
     *
     * @public
     * @returns {string}
     */
    public toString(): string;
    #private;
}
/**
 * A function that returns a {@link ParametersBuilder}.
 */
export type parametersBuilderCallback = (parameterBuilder: ParametersBuilder) => void;
import Endpoint from './../definitions/Endpoint.js';
import VerbType from './../definitions/VerbType.js';
import ProtocolType from './../definitions/ProtocolType.js';
import RequestInterceptor from './../interceptors/RequestInterceptor.js';
import ResponseInterceptor from './../interceptors/ResponseInterceptor.js';
import ErrorInterceptor from './../interceptors/ErrorInterceptor.js';
import ParametersBuilder from './ParametersBuilder.js';
