import { ObjectDefinition } from './objectdefinition/ObjectDefinition';
import { ObjectDefinitionInspector } from './ObjectDefinitionInspector';
export declare type NameOrRegexp = string | RegExp;
export declare abstract class AbstractObjectDefinitionInspector implements ObjectDefinitionInspector {
    namePatterns: NameOrRegexp[];
    inspectAll: boolean;
    relevantClasses: Function[];
    constructor();
    addInterestedClass(clazz: Function): void;
    addNamePattern(nameOrRegex: NameOrRegexp): void;
    inspect(objectDefinition: ObjectDefinition<any>): any;
    /**
     * Indicates whether this inspector is interested in this ObjectDefinition
     * @param objectDefinition ObjectDefinition The object definition to possibly modify
     * @return boolean Whether it's interested or not in this ObjectDefinition
     */
    interestedIn(objectDefinition: ObjectDefinition<any>): boolean;
    setInspectAll(inspectAll: boolean): void;
    /**
     * If the {@link interestedIn} method returns true, this one will be called to provide
     * the modified version of the bean definition.
     * @param {ObjectDefinition} objectDefinition The object definition to possibly modify
     * @return ObjectDefinition The modified ObjectDefinition
     */
    abstract doInspect(objectDefinition: ObjectDefinition<any>): any;
}
