import { ComponentConstructor } from "../../typing";
import { EventTypeRegister } from "../events/event-type-register";
interface IntegrityError {
    message: string;
    component: ComponentConstructor;
}
export declare class IntegrityResult {
    private _errors;
    constructor(errors?: IntegrityError[]);
    get hasError(): boolean;
    get errors(): IntegrityError[];
}
export declare class ComponentIntegrityChecker {
    private eventTypeRegister;
    constructor(eventTypeRegister: EventTypeRegister);
    /**
     * Check if the event is supported by the component.
     * @param event Event metadata
     * @param component Component constructor
     * @returns Error or null
     */
    private checkEvent;
    /**
     * Check if the component have unauthorized events.
     * @param cb Component browser
     * @returns List of errors
     */
    private checkEventIntegrity;
    /**
     * Check that the component doesn't have an input.
     * @param cb Component browser
     * @returns List of errors
     */
    private checkInput;
    /**
     * Check if the component have a static value for the config.
     * @param cb Component browser
     * @returns List of errors
     */
    private checkConfig;
    /**
     * Check the integrity of the component.
     * @param rootComponentConstructor Root component constructor
     * @returns Integrity result
     */
    check(rootComponentConstructor: ComponentConstructor): IntegrityResult;
}
export {};
