import { Layout, LayoutBase } from '../../AdaptableState/LayoutState';
import { ApiBase } from '../Implementation/ApiBase';
import { LayoutExtensionObject, LayoutExtensionModule } from '../../types';
export declare class LayoutInternalApi extends ApiBase {
    /**
     * Compares 2 Layouts for equality
     * @param layout1 First Layout
     * @param layout2 Second Layout
     */
    areLayoutsEqual(layout1: Layout, layout2: Layout): boolean;
    /**
     * Returns what the layout supports.
     * This takes into account the data-source.
     */
    getLayoutSupportedFeatures(): {
        RowGroupedColumns: boolean;
        TableAggregationColumns: boolean;
        PivotAggregationColumns: boolean;
        PivotColumns: boolean;
        ColumnFilters: boolean;
        GridFilter: boolean;
        ColumnSorts: boolean;
        RowSummaries: boolean;
    };
    hasLayoutSpecificObjects(): boolean;
    isObjectExtendedInLayout(object: LayoutExtensionObject, module: LayoutExtensionModule, layout: Layout): boolean;
    showLayoutNonExtendedObjects(): boolean;
    isLayoutGrouped(layout?: Layout): boolean;
    setupRowSummaries(): void;
    refreshLayout(): void;
    getChangedColumnSorts(oldSorts: LayoutBase['ColumnSorts'], newSorts: LayoutBase['ColumnSorts']): string[];
    buildInitialLayout(providedLayout: Partial<Layout> & {
        Name: string;
    }, type?: 'table' | 'pivot'): Layout;
    private getLayoutCreationDefaultProperties;
    cloneLayout(layoutToClone: Layout): Omit<Layout, 'Name'>;
    getCurrentLayout_perfOptimized(): Layout | null;
    getCurrentLayoutRowGroupDisplayType(): LayoutBase['RowGroupDisplayType'];
}
