/**
 * Fluent interface for building a {@link Parameters} collection.
 *
 * @public
 */
export default class ParametersBuilder {
    /**
     * @param {boolean=} required - If true, all parameters will be marked as required.
     */
    constructor(required?: boolean | undefined);
    /**
     * The {@link Parameters} collection, given all the information provided thus far.
     *
     * @public
     * @returns {Parameters}
     */
    public get parameters(): Parameters;
    /**
     * Adds a new parameter that extracts its value from a delegate.
     *
     * @param {string} description
     * @param {string} key
     * @param {Function} delegate
     * @param {boolean=} optional
     * @param {Function=} serializer
     * @returns {ParametersBuilder}
     */
    withDelegateParameter(description: string, key: string, delegate: Function, optional?: boolean | undefined, serializer?: Function | undefined): ParametersBuilder;
    /**
     * Adds a new parameter with a literal value.
     *
     * @param {string} description
     * @param {string} key
     * @param {*=} value
     * @param {boolean=} optional
     * @returns {ParametersBuilder}
     */
    withLiteralParameter(description: string, key: string, value?: any | undefined, optional?: boolean | undefined): ParametersBuilder;
    /**
     * Adds a new parameter that reads its value from the variable
     * on the request payload.
     *
     * @param {string} description
     * @param {string} key
     * @param {string} variable
     * @param {boolean=} optional
     * @param {Function=} serializer
     * @returns {ParametersBuilder}
     */
    withVariableParameter(description: string, key: string, variable: string, optional?: boolean | undefined, serializer?: Function | undefined): ParametersBuilder;
    /**
     * Returns a string representation.
     *
     * @public
     * @returns {string}
     */
    public toString(): string;
    #private;
}
import Parameters from './../definitions/Parameters.js';
