/**
 * @typedef {import("../casa").ErrorMessageConfig} ErrorMessageConfig
 * @access private
 */
/**
 * @typedef {import("./index").JourneyContext} JourneyContext
 * @access private
 */
/**
 * @typedef {import("./index").ValidationError} ValidationError
 * @access private
 */
/**
 * @typedef {import("../casa").ValidateContext} ValidateContext
 * @access private
 */
/**
 * @typedef {import("../casa").Validator} Validator
 * @access private
 */
/**
 * @typedef {Object<string, unknown>} ValidatorFactoryOptions
 * @property {ErrorMessageConfig} errorMsg Error message
 */
/**
 * @memberof module:@dwp/govuk-casa
 * @class
 */
export default class ValidatorFactory {
    /**
     * This is a convenience method that will return a consistently object
     * structure containing validation and sanitisation methods.
     *
     * @param {ValidatorFactoryOptions} config Validator config (custom to each
     *   validator)
     * @returns {Validator} Validator object
     * @throws {TypeError} When configuration is invalid.
     */
    static make(config?: ValidatorFactoryOptions): Validator;
    /**
     * NEVER CALL THIS DIRECTLY. USE `make()`.
     *
     * @param {ValidatorFactoryOptions} config Validator config (custom to each
     *   validator)
     */
    constructor(config?: ValidatorFactoryOptions);
    config: {
        [x: string]: unknown;
    };
    /**
     * Validate the given value.
     *
     * @param {any} fieldValue Value to validate
     * @param {ValidateContext} context Contextual information
     * @returns {ValidationError[]} A list of errors (empty if no errors found)
     * @throws {Error}
     */
    validate(fieldValue: any, context: ValidateContext): ValidationError[];
    /**
     * Sanitise the given value.
     *
     * @param {any} fieldValue Value to validate
     * @returns {any} The sanitised value
     */
    sanitise(fieldValue: any): any;
}
export type ErrorMessageConfig = import("../casa").ErrorMessageConfig;
export type JourneyContext = import("./index").JourneyContext;
export type ValidationError = import("./index").ValidationError;
export type ValidateContext = import("../casa").ValidateContext;
export type Validator = import("../casa").Validator;
export type ValidatorFactoryOptions = {
    [x: string]: unknown;
};
