import { Dimension, HtmlComponent, HtmlCompPrefSizeOptions } from '../index';
/**
 * A layout is responsible to layout the children of a container and is able to return its preferred size.
 */
export declare class AbstractLayout {
    animateClasses: string[];
    cssClass?: string;
    constructor();
    /**
     * Called when layout is invalidated. An implementation should delete cached layout-information when it is invalidated.
     *
     * May be implemented by a sub-class.
     *
     * @param htmlSource The component the invalidation originated from.
     *        Is always set if the invalidation is triggered by using {@link HtmlComponent.invalidateLayoutTree}, may be undefined otherwise.
     */
    invalidate(htmlSource?: HtmlComponent): void;
    /**
     * Layouts children of the given $container, according to the implemented layout algorithm.
     * The implementation should call {@link HtmlComponent.setSize} or {@link HtmlComponent.setBounds} on its children which will validate their layout.
     */
    layout($container: JQuery): void;
    /**
     * Reverts the adjustments made by {@link HtmlComponent#_adjustSizeHintsForPrefSize} without the margin.
     * More concrete: it adds border and padding to the hints again.
     */
    protected _revertSizeHintsAdjustments($container: JQuery, options: HtmlCompPrefSizeOptions): void;
    /**
     * Returns the preferred size of the given $container.
     */
    preferredLayoutSize($container: JQuery, options?: HtmlCompPrefSizeOptions): Dimension;
}
//# sourceMappingURL=AbstractLayout.d.ts.map