import { HtmlComponent } from '../index';
export declare class LayoutValidator {
    /** @internal */
    _invalidComponents: HtmlComponent[];
    protected _validateTimeoutId: number | boolean;
    protected _postValidateFunctions: (() => void)[];
    protected _suppressValidate: boolean;
    constructor();
    invalidateTree(htmlComp: HtmlComponent): void;
    invalidate(htmlComp: HtmlComponent): void;
    protected _scheduleValidation(): void;
    /**
     * Layouts all invalid components (unless they have been removed).
     */
    validate(): void;
    /**
     * Suppresses every upcoming validations. The caller has to call {@link unsuppressValidate} to reactive validation again.
     * Can be useful if the browser starts the processing of the micro task queue unexpectedly (e.g. when inserting certain DOM elements).
     */
    suppressValidate(): void;
    unsuppressValidate(): void;
    /**
     * Removes those components from this._invalidComponents which have the given container as ancestor.
     * The idea is to remove all components whose ancestor is about to be removed from the DOM.
     */
    cleanupInvalidComponents($parentContainer: JQuery): void;
    /**
     * Runs the given function at the end of {@link validate}.
     */
    schedulePostValidateFunction(func: () => void): void;
    removePostValidateFunction(func: () => void): void;
}
//# sourceMappingURL=LayoutValidator.d.ts.map