import { ProblemDefinition } from '../models/problem-definition';
export declare class DefinitionFactory {
    /**
     * Stores all the registered problem details to help
     * aid the developer in reusing exceptions.
     */
    private definitionsMap;
    private isValid;
    /**
     * Registers a definition to the internal map so developers
     * only need to reference the `code`, instead of throwing a
     * completely new problem detail object.
     * @param definition Definition that needs to be registered
     */
    register(definition: ProblemDefinition): void;
    /**
     * Loads an array of definitions into the defintions map
     * @param definitions Array of defintions
     */
    load(definitions: ProblemDefinition[]): void;
    /**
     * Returns a copy all registered definitions
     */
    getDefinitions(): ProblemDefinition[];
    /**
     * Returns a definition based on the matching code.
     * @param code Refrence to a registered definition
     */
    getByCode(code: string): ProblemDefinition;
}
