import { ApiBase } from './ApiBase';
import { LayoutApi } from '../LayoutApi';
import { Layout, LayoutState, PivotLayout, TableLayout } from '../../AdaptableState/LayoutState';
import { AdaptableColumn } from '../../AdaptableState/Common/AdaptableColumn';
import { ColumnSort } from '../../AdaptableState/Common/ColumnSort';
import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
import { LayoutInternalApi } from '../Internal/LayoutInternalApi';
import { ExtendedLayoutInfo } from '../../AdaptableState/Common/ExtendedLayoutInfo';
export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
    internalApi: LayoutInternalApi;
    constructor(_adaptable: IAdaptable);
    updateCurrentLayout(updateFn: (layout: TableLayout | PivotLayout) => TableLayout | PivotLayout): void;
    isCurrentLayoutPivot(): boolean;
    getLayoutState(): LayoutState;
    getCurrentVisibleColumnIdsMapForTableLayout(): {
        [key: string]: boolean;
    };
    getCurrentVisibleColumnIdsForTableLayout(): string[];
    getCurrentRowGroupsColumnIds(): string[];
    setLayout(layoutName: string): void;
    getCurrentLayout(): Layout;
    getCurrentLayoutColumnSort(columnId: string): ColumnSort['SortOrder'] | null;
    getCurrentLayoutName(): string;
    getLayoutByName(layoutName: string): Layout | null;
    getExtendedLayoutByName(layoutName: string): ExtendedLayoutInfo | undefined;
    getLayouts(): Layout[];
    getLayoutById(id: Layout['Uuid']): Layout;
    saveCurrentLayout(): void;
    doesLayoutExist(layout: Layout): boolean;
    createAndSetLayout(layoutToCreate: Layout): Layout | false;
    createLayout(layoutToCreate: Layout): Layout | false;
    cloneAndSetLayout(layoutToClone: Layout, layoutName: string): Layout | false;
    cloneLayout(layoutToClone: Layout, layoutName: string): Layout | false;
    setColumnCaption(columnId: string, caption: string): void;
    createOrUpdateLayout(layout: Layout): void;
    showChangeColumnCaption(column: AdaptableColumn): void;
    openLayoutSettingsPanel(): void;
    showLayoutEditor(layoutName?: string, layoutType?: 'table' | 'pivot', action?: ModuleParams['action']): void;
    isCurrentLayoutReadOnly(): boolean;
    deleteLayout(layout: Layout): void;
    deleteLayoutByName(layoutName: string): void;
    removeColumnFromCurrentLayout(columnId: string): void;
    removeColumnFromAllLayouts(columnId: string): void;
    removeColumnFromLayout(columnId: string, layoutName: string): void;
    addColumnToTableLayout(columnId: string, layoutName: string): void;
    addColumnToCurrentTableLayout(columnId: string): void;
}
