/**
 * 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 DataSpaceViewerState } from './DataSpaceViewerState.js';
import { type TreeData, type TreeNodeData } from '@finos/legend-art';
import { ActionState, FuzzySearchAdvancedConfigState } from '@finos/legend-shared';
import { type NormalizedDataSpaceDocumentationEntry } from '../graph-manager/action/analytics/DataSpaceAnalysis.js';
import { CORE_PURE_PATH } from '@finos/legend-graph';
import type { CommandRegistrar } from '@finos/legend-application';
export declare enum ModelsDocumentationFilterTreeNodeCheckType {
    CHECKED = 0,
    UNCHECKED = 1,
    PARTIALLY_CHECKED = 2
}
export declare abstract class ModelsDocumentationFilterTreeNodeData implements TreeNodeData {
    readonly id: string;
    readonly label: string;
    readonly parentNode: ModelsDocumentationFilterTreeNodeData | undefined;
    isOpen: boolean;
    childrenIds: string[];
    childrenNodes: ModelsDocumentationFilterTreeNodeData[];
    checkType: ModelsDocumentationFilterTreeNodeCheckType;
    constructor(id: string, label: string, parentNode: ModelsDocumentationFilterTreeNodeData | undefined);
    setIsOpen(val: boolean): void;
    setCheckType(val: ModelsDocumentationFilterTreeNodeCheckType): void;
}
export declare class ModelsDocumentationFilterTreeRootNodeData extends ModelsDocumentationFilterTreeNodeData {
}
export declare class ModelsDocumentationFilterTreePackageNodeData extends ModelsDocumentationFilterTreeNodeData {
    parentNode: ModelsDocumentationFilterTreeNodeData;
    packagePath: string;
    constructor(id: string, label: string, parentNode: ModelsDocumentationFilterTreeNodeData, packagePath: string);
}
export declare class ModelsDocumentationFilterTreeElementNodeData extends ModelsDocumentationFilterTreeNodeData {
    parentNode: ModelsDocumentationFilterTreeNodeData;
    elementPath: string;
    typePath: CORE_PURE_PATH | undefined;
    constructor(id: string, label: string, parentNode: ModelsDocumentationFilterTreeNodeData, elementPath: string, typePath: CORE_PURE_PATH | undefined);
}
export declare class ModelsDocumentationFilterTreeTypeNodeData extends ModelsDocumentationFilterTreeNodeData {
    parentNode: ModelsDocumentationFilterTreeNodeData;
    typePath: CORE_PURE_PATH;
    constructor(id: string, label: string, parentNode: ModelsDocumentationFilterTreeNodeData, typePath: CORE_PURE_PATH);
}
export declare const uncheckFilterTreeNode: (node: ModelsDocumentationFilterTreeNodeData) => void;
export declare const checkFilterTreeNode: (node: ModelsDocumentationFilterTreeNodeData) => void;
export declare const uncheckAllFilterTree: (treeData: TreeData<ModelsDocumentationFilterTreeNodeData>) => void;
export declare class DataSpaceViewerModelsDocumentationState implements CommandRegistrar {
    readonly dataSpaceViewerState: DataSpaceViewerState;
    showHumanizedForm: boolean;
    private searchInput?;
    private readonly searchEngine;
    searchConfigurationState: FuzzySearchAdvancedConfigState;
    readonly searchState: ActionState;
    searchText: string;
    searchResults: NormalizedDataSpaceDocumentationEntry[];
    showSearchConfigurationMenu: boolean;
    showFilterPanel: boolean;
    typeFilterTreeData: TreeData<ModelsDocumentationFilterTreeNodeData>;
    packageFilterTreeData: TreeData<ModelsDocumentationFilterTreeNodeData>;
    filterTypes: string[];
    filterPaths: string[];
    constructor(dataSpaceViewerState: DataSpaceViewerState);
    get filteredSearchResults(): NormalizedDataSpaceDocumentationEntry[];
    get isTypeFilterCustomized(): boolean;
    get isPackageFilterCustomized(): boolean;
    get isFilterCustomized(): boolean;
    setShowHumanizedForm(val: boolean): void;
    setSearchText(val: string): void;
    resetSearch(): void;
    search(): void;
    setShowSearchConfigurationMenu(val: boolean): void;
    setShowFilterPanel(val: boolean): void;
    resetTypeFilterTreeData(): void;
    resetPackageFilterTreeData(): void;
    updateTypeFilter(): void;
    updatePackageFilter(): void;
    resetTypeFilter(): void;
    resetPackageFilter(): void;
    resetAllFilters(): void;
    hasClassDocumentation(classPath: string): boolean;
    viewClassDocumentation(classPath: string): void;
    setSearchInput(el: HTMLInputElement | undefined): void;
    focusSearchInput(): void;
    selectSearchInput(): void;
    registerCommands(): void;
    deregisterCommands(): void;
}
//# sourceMappingURL=DataSpaceModelsDocumentationState.d.ts.map