import { ApiDefinitions, AmfShapes } from '@api-client/core/build/browser.js';
export interface ParametersSerializationReport {
    valid: boolean;
    invalid: string[];
    header: Record<string, any>;
    query: Record<string, any>;
    path: Record<string, any>;
    cookie: Record<string, any>;
    authQuery?: Record<string, any>;
    tokenQuery?: Record<string, any>;
    tokenHeader?: Record<string, any>;
    tokenBody?: Record<string, any>;
}
export type BindingType = Pick<ParametersSerializationReport, 'header' | 'query' | 'path' | 'cookie' | 'authQuery' | 'tokenQuery' | 'tokenHeader' | 'tokenBody'>;
/**
 * A utility class with helper functions to process user input according on AMF schema.
 */
export declare class AmfInputParser {
    /**
     * Generates a report with the request data compiled from the operation input parameters (except for the body)
     * and gathered values.
     *
     * Note, all parameter values are cast to String as all target locations of these parameters are string values
     * (headers, query parameters, path parameters). The exception here are arrays which are preserved (but with string values).
     *
     * All optional parameters that have no value or have invalid value ar ignored.
     *
     * @param parameters The input parameters for the operation
     * @param values The collected values for all parameters.
     * @param nillable The list of parameter ids that are marked as nil values.
     * @param defaultNil The nil value to insert when the parameter is in the nillable list.
     */
    static reportRequestInputs(parameters: ApiDefinitions.IApiParameter[], values: Map<string, any>, nillable?: string[], defaultNil?: any): ParametersSerializationReport;
    /**
     * @param reportGroup
     * @param name
     * @param schema
     * @param value
     * @param required Whether the parameter is required.
     * @returns `true` when the parameter is valid and `false` otherwise.
     */
    static addReportItem(reportGroup: Record<string, any>, name: string, schema: AmfShapes.IShapeUnion, value: any, required?: boolean): boolean;
    /**
     * @param required Whether the parameter is required.
     * @returns `true` when the parameter is valid and `false` otherwise.
     */
    static addReportScalarItem(reportGroup: Record<string, any>, name: string, value: any, schema: AmfShapes.IApiScalarShape, required?: boolean): boolean;
    /**
     * @param reportGroup
     * @param name
     * @param value
     * @param schema
     * @param required Whether the parameter is required.
     * @returns `true` when the parameter is valid and `false` otherwise.
     */
    static addReportArrayItem(reportGroup: Record<string, any>, name: string, value: any, schema: AmfShapes.IApiArrayShape, required?: boolean): boolean;
    /**
     * @param reportGroup
     * @param name
     * @param value
     * @param schema
     * @param required Whether the parameter is required.
     * @returns `true` when the parameter is valid and `false` otherwise.
     */
    static addReportUnionItem(reportGroup: Record<string, any>, name: string, value: any, schema: AmfShapes.IApiUnionShape, required?: boolean): boolean;
}
//# sourceMappingURL=AmfInputParser.d.ts.map