import { LayoutAssociatedObject } from '../../AdaptableOptions/LayoutOptions';
import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
import { Layout, LayoutState } from '../../PredefinedConfig/LayoutState';
import { ApiBase } from '../Implementation/ApiBase';
export declare class LayoutInternalApi extends ApiBase {
    /**
     * Fires the `LayoutChanged` event
     * @param trigger what caused event to fire
     * @param oldSate Layout State before change
     * @param newState Layout State after change
     */
    fireLayoutChangedEvent(trigger: string, oldSate: LayoutState, newState: LayoutState, skipEqualityCheck?: boolean): void;
    /**
     * Compares 2 Layouts for equality
     * @param layout1 First Layout
     * @param layout2 Second Layout
     */
    areLayoutsEqual(layout1: Layout, layout2: Layout): boolean;
    /**
     * Creates a Default Layout (when none provided in Config)
     * @returns layout
     */
    createDefaultLayoutIfNeeded(): Layout | null;
    /**
     * Returns true if Layouts will contain Expanded Row Groups information
     */
    areExpandedRowGroupsSavedInLayouts(): boolean;
    /**
     * Checks if the draft layout and the current layout are the same.
     * Useful when `autoSaveLayouts=true`
     */
    areDraftAndCurrentLayoutEqual(): boolean;
    /**
     * Returns what the layout supports.
     * This takes into account the data-source.
     */
    getLayoutSupportedFeatures(): {
        RowGroupedColumns: boolean;
        AggregationColumns: boolean;
        PivotColumns: boolean;
        ColumnFilters: boolean;
        GridFilter: boolean;
        ColumnSorts: boolean;
        RowSummaries: boolean;
    };
    updateCurrentDraftLayout(layout: Layout): void;
    hasLayoutSpecificObjects(): boolean;
    isObjectAvailableInLayout(object: LayoutAssociatedObject, module: AdaptableModule, layout: Layout): boolean;
    showLayoutNotAssociatedObjects(): boolean;
    isLayoutGrouped(layout?: Layout): boolean;
    setupRowSummaries(): void;
}
