/**
 * 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 { LegendMarketplaceBaseStore } from '../LegendMarketplaceBaseStore.js';
import { ActionState, type GeneratorFn } from '@finos/legend-shared';
import { type MarketplaceServerClient, type TaxonomyNode } from '@finos/legend-server-marketplace';
import { ProductCardState } from './dataProducts/ProductCardState.js';
export declare enum DataProductSort {
    DEFAULT = "Default",
    NAME_ALPHABETICAL = "Name A-Z",
    NAME_REVERSE_ALPHABETICAL = "Name Z-A"
}
export declare enum DataProductTypeFilter {
    LAKEHOUSE = "lakehouse",
    LEGACY = "legacy"
}
export declare enum DataProductSourceFilter {
    EXTERNAL = "External",
    INTERNAL = "Internal"
}
export interface FilterCounts {
    lakehouse_count: number;
    legacy_count: number;
    external_source_count: number;
}
export declare enum SearchResultsViewMode {
    TILE = "tile",
    LIST = "list"
}
export declare enum SearchResultViewOption {
    DATA_PRODUCTS = "Data Products",
    DATA_FIELDS = "Data Fields"
}
export declare class LegendMarketplaceSearchResultsStore {
    readonly marketplaceBaseStore: LegendMarketplaceBaseStore;
    readonly marketplaceServerClient: MarketplaceServerClient;
    searchQuery: string | undefined;
    private _lastTaxonomyQuery;
    useProducerSearch: boolean | undefined;
    semanticSearchProductCardStates: ProductCardState[];
    producerSearchDataProductCardStates: ProductCardState[];
    producerSearchLegacyDataProductCardStates: ProductCardState[];
    sort: DataProductSort;
    viewMode: SearchResultsViewMode;
    taxonomyTree: TaxonomyNode[];
    selectedTaxonomyNodeIds: Set<string>;
    selectedDataProductTypes: Set<DataProductTypeFilter>;
    selectedSources: Set<DataProductSourceFilter>;
    filterCounts: FilterCounts;
    page: number;
    itemsPerPage: number;
    totalItems: number;
    showAllProducts: boolean;
    hasFilteredDataProducts: boolean;
    readonly executingSemanticSearchState: ActionState;
    readonly fetchingProducerSearchDataProductsState: ActionState;
    readonly fetchingProducerSearchLegacyDataProductsState: ActionState;
    constructor(marketplaceBaseStore: LegendMarketplaceBaseStore);
    setSearchQuery(query: string): void;
    setUseProducerSearch(value: boolean): void;
    get isOnLastPage(): boolean;
    get filterSortProducts(): ProductCardState[] | undefined;
    get isLoading(): boolean;
    setPage(value: number): void;
    setItemsPerPage(value: number): void;
    setTotalItems(value: number): void;
    setShowAllProducts(value: boolean): void;
    setHasFilteredDataProducts(value: boolean): void;
    setSemanticSearchProductCardStates(dataProductCardStates: ProductCardState[]): void;
    setProducerSearchDataProductCardStates(dataProductCardStates: ProductCardState[]): void;
    setProducerSearchLegacyDataProductCardStates(dataProductCardStates: ProductCardState[]): void;
    setSort(sort: DataProductSort): void;
    setViewMode(viewMode: SearchResultsViewMode): void;
    setTaxonomyTree(tree: TaxonomyNode[]): void;
    setFilterCounts(counts: FilterCounts): void;
    setSelectedTaxonomyNodeIds(ids: string[]): void;
    private collectAllNodeIds;
    private findNode;
    private findAncestorPath;
    toggleTaxonomyNode(nodeId: string): void;
    private deselectTaxonomyNode;
    private selectTaxonomyNode;
    simpleToggleTaxonomyNode(nodeId: string): void;
    toggleDataProductType(value: DataProductTypeFilter): void;
    toggleSource(value: DataProductSourceFilter): void;
    clearAllFilters(): void;
    get hasActiveFilters(): boolean;
    private computeFilterNodeIds;
    private buildSearchFilters;
    executeSearch(query: string, useProducerSearch: boolean, token: string | undefined): GeneratorFn<void>;
    private processRawSearchResults;
    private executeSemanticSearch;
    private executeProducerSearch;
    private DEPRECATED_fetchDataProducts;
    private fetchLegacyDataProducts;
}
//# sourceMappingURL=LegendMarketplaceSearchResultsStore.d.ts.map