/**
 * 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 GenericLegendApplicationStore } from '@finos/legend-application';
import { type QueryBuilderConfig, type QueryBuilderWorkflowState, type QueryBuilderActionConfig, QueryBuilderState, type QueryBuilderExtraFunctionAnalysisInfo, type ExtraOptionsConfig } from '@finos/legend-query-builder';
import { type Class, type GraphManagerState, type QueryExecutionContext, type Runtime, type Mapping } from '@finos/legend-graph';
import { type GeneratorFn, ActionState } from '@finos/legend-shared';
import { type DataSpaceOption } from '../../components/query-builder/DataSpaceQueryBuilder.js';
import { type DataSpaceExecutionContext, DataSpace } from '../../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
import type { DataSpaceAdvancedSearchState } from '../query/DataSpaceAdvancedSearchState.js';
import { type DataSpaceAnalysisResult, type DataSpaceExecutableAnalysisResult } from '../../graph-manager/action/analytics/DataSpaceAnalysis.js';
import { ResolvedDataSpaceEntityWithOrigin } from '../shared/DataSpaceInfo.js';
import type { DepotEntityWithOrigin, QueryableSourceInfo } from '@finos/legend-storage';
export declare const resolveUsableDataSpaceClasses: (dataSpace: DataSpace, mapping: Mapping, graphManagerState: GraphManagerState, queryBuilderState?: DataSpaceQueryBuilderState) => Class[];
export interface DataSpaceQuerySDLC extends QueryableSourceInfo {
    groupId: string;
    artifactId: string;
    versionId: string;
    dataSpace: string;
}
export declare const buildDataSpaceOption: (value: ResolvedDataSpaceEntityWithOrigin) => DataSpaceOption;
export declare class DataSpaceQueryBuilderState extends QueryBuilderState {
    readonly onDataSpaceChange: (val: ResolvedDataSpaceEntityWithOrigin) => Promise<void>;
    readonly onExecutionContextChange?: ((val: DataSpaceExecutionContext) => void) | undefined;
    readonly onRuntimeChange?: ((val: Runtime) => void) | undefined;
    readonly onClassChange?: ((val: Class) => void) | undefined;
    readonly dataSpaceAnalysisResult?: DataSpaceAnalysisResult | undefined;
    readonly extraOptionsConfig?: ExtraOptionsConfig<DepotEntityWithOrigin> | undefined;
    entities: ResolvedDataSpaceEntityWithOrigin[] | undefined;
    TEMPORARY__setupPanelContentRenderer: () => React.ReactNode;
    dataSpace: DataSpace;
    executionContext: DataSpaceExecutionContext;
    showRuntimeSelector: boolean;
    isTemplateQueryDialogOpen: boolean;
    isLightGraphEnabled: boolean;
    displayedTemplateQueries: DataSpaceExecutableAnalysisResult[] | undefined;
    advancedSearchState?: DataSpaceAdvancedSearchState | undefined;
    loadEntitiesState: ActionState;
    prioritizeEntityFunc?: ((val: ResolvedDataSpaceEntityWithOrigin) => boolean) | undefined;
    constructor(applicationStore: GenericLegendApplicationStore, graphManagerState: GraphManagerState, workflow: QueryBuilderWorkflowState, actionConfig: QueryBuilderActionConfig, dataSpace: DataSpace, executionContext: DataSpaceExecutionContext, isLightGraphEnabled: boolean, prioritizeEntityFunc: ((val: ResolvedDataSpaceEntityWithOrigin) => boolean) | undefined, onDataSpaceChange: (val: ResolvedDataSpaceEntityWithOrigin) => Promise<void>, dataSpaceAnalysisResult?: DataSpaceAnalysisResult | undefined, onExecutionContextChange?: ((val: DataSpaceExecutionContext) => void) | undefined, onRuntimeChange?: ((val: Runtime) => void) | undefined, onClassChange?: ((val: Class) => void) | undefined, config?: QueryBuilderConfig | undefined, sourceInfo?: QueryableSourceInfo | undefined, extraOptionsConfig?: ExtraOptionsConfig<DepotEntityWithOrigin> | undefined);
    get dataSpaceOptions(): DataSpaceOption[];
    get sideBarClassName(): string | undefined;
    getQueryExecutionContext(): QueryExecutionContext;
    get isAdvancedDataSpaceSearchEnabled(): boolean;
    get isDataSpaceLinkable(): boolean;
    copyDataSpaceLinkToClipboard(): void;
    get selectedDataSpaceOption(): DataSpaceOption;
    get canVisitTemplateQuery(): boolean;
    protected getElementType(): typeof DataSpace;
    loadEntities(): GeneratorFn<void>;
    protected transformElement(element: DataSpace): ResolvedDataSpaceEntityWithOrigin;
    setTemplateQueryDialogOpen(val: boolean): void;
    setExecutionContext(val: DataSpaceExecutionContext): void;
    setShowRuntimeSelector(val: boolean): void;
    setIsLightGraphEnabled(val: boolean): void;
    buildFunctionAnalysisInfo(): QueryBuilderExtraFunctionAnalysisInfo | undefined;
    intialize(): GeneratorFn<void>;
    visitTemplateQuery(dataSpace: DataSpace, template: DataSpaceExecutableAnalysisResult): void;
    hideAdvancedSearchPanel(): void;
    showAdvancedSearchPanel(dataSpace: DataSpace): void;
}
//# sourceMappingURL=DataSpaceQueryBuilderState.d.ts.map