import { Type, type StringMapper, StringMappers } from "./internal.mjs";
/**
 * Returns the String representation of
 */
declare class MutableStringMappers {
    private readonly typeToMapper;
    /**
     * Creates a new instance.
     *
     * @param typeToMapper - a mapping from the name of a type to the string representation of its values
     */
    constructor(typeToMapper: Map<Type, StringMapper>);
    /**
     * Returns a mutable copy of the StringMappers.
     *
     * @param mappers - a `StringMappers` object
     * @returns a mutable copy of the StringMappers
     */
    static from(mappers: StringMappers): MutableStringMappers;
    /**
     * Returns an immutable copy of the mapper configuration.
     *
     * @returns an immutable copy of the mapper configuration
     */
    toImmutable(): StringMappers;
    /**
     * Sets the function that maps a value of the given type to a string. This method is useful for customizing
     * the formatting of validation failure messages.
     *
     * @param type   - a type
     * @param mapper - a function that returns the String representation of the type's instances
     * @returns this
     */
    put(type: Type, mapper: StringMapper): this;
    /**
     * Removes a mapper for a type.
     *
     * @param type - the type
     * @returns this
     */
    remove(type: Type): this;
    /**
     * Returns the string representation of this instance
     *
     * @returns the string representation of this instance
     */
    toString(): string;
}
export { MutableStringMappers };
