/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { type DataCubeConfiguration } from '../../core/model/DataCubeConfiguration.js';
import { type DataCubeSnapshot } from '../../core/DataCubeSnapshot.js';
import { DataCubeEditorColumnsSelectorColumnState } from './DataCubeEditorColumnsSelectorState.js';
import type { DataCubeQueryEditorPanelState } from './DataCubeEditorPanelState.js';
import type { DataCubeEditorState } from './DataCubeEditorState.js';
export type DataCubeEditorDimensionsTreeNode = {
    name: string;
    data: DataCubeEditorDimensionState | DataCubeEditorColumnsSelectorColumnState;
    children?: DataCubeEditorDimensionsTreeNode[] | undefined;
};
export declare class DataCubeEditorDimensionState {
    name: string;
    isRenaming: boolean;
    columns: DataCubeEditorColumnsSelectorColumnState[];
    constructor(name: string);
    setName(name: string): void;
    setIsRenaming(val: boolean): void;
    setColumns(columns: DataCubeEditorColumnsSelectorColumnState[]): void;
}
export declare class DataCubeEditorDimensionsPanelState implements DataCubeQueryEditorPanelState {
    readonly _editor: DataCubeEditorState;
    availableColumnsSearchText: string;
    dimensions: DataCubeEditorDimensionState[];
    dimensionsTreeData: {
        nodes: DataCubeEditorDimensionsTreeNode[];
    };
    dimensionsTreeSearchText: string;
    constructor(editor: DataCubeEditorState);
    get availableColumns(): DataCubeEditorColumnsSelectorColumnState[];
    get availableColumnsForDisplay(): DataCubeEditorColumnsSelectorColumnState[];
    setAvailableColumnsSearchText(val: string): void;
    get selectedColumns(): DataCubeEditorColumnsSelectorColumnState[];
    deselectColumns(columns: DataCubeEditorColumnsSelectorColumnState[]): void;
    setDimensions(dimensions: DataCubeEditorDimensionState[]): void;
    newDimension(): DataCubeEditorDimensionState;
    refreshDimensionsTreeData(): void;
    setDimensionsTreeSearchText(val: string): void;
    adaptPropagatedChanges(): void;
    applySnaphot(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration): void;
    buildSnapshot(newSnapshot: DataCubeSnapshot, baseSnapshot: DataCubeSnapshot): void;
}
//# sourceMappingURL=DataCubeEditorDimensionsPanelState.d.ts.map