/**
 * 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 RenderResult } from '@testing-library/react';
import { EditorStore } from '../../../stores/editor/EditorStore.js';
import { type PlainObject } from '@finos/legend-shared';
import { LegendStudioPluginManager } from '../../../application/LegendStudioPluginManager.js';
import type { Entity } from '@finos/legend-storage';
import { type Project, type ProjectConfiguration, type ProjectStructureVersion, type Revision, type Version, type Workspace } from '@finos/legend-server-sdlc';
import { type GenerationConfigurationDescription, type GenerationMode, type GraphManagerState } from '@finos/legend-graph';
import { type StoreProjectData, type ProjectVersionEntities, type RawProjectDependencyReport } from '@finos/legend-server-depot';
import { type LegendStudioApplicationStore } from '../../../stores/LegendStudioBaseStore.js';
export declare const TEST_DATA__DefaultSDLCInfo: {
    project: {
        projectId: string;
        description: string;
        tags: never[];
        name: string;
    };
    workspace: {
        projectId: string;
        userId: string;
        workspaceId: string;
    };
    currentRevision: {
        authoredAt: number;
        committedAt: number;
        committerName: string;
        authorName: string;
        message: string;
        id: string;
    };
    projectConfig: {
        projectStructureVersion: {
            version: number;
            extensionVersion: number;
        };
        projectId: string;
        groupId: string;
        artifactId: string;
        projectDependencies: never[];
        metamodelDependencies: never[];
    };
    latestProjectStructureVersion: {
        version: number;
        extensionVersion: number;
    };
    availableSchemaImports: never[];
    availableCodeImports: never[];
    availableSchemaGenerations: GenerationConfigurationDescription[];
    availableCodeGenerations: {
        label: string;
        properties: never[];
        key: string;
        generationMode: GenerationMode;
    }[];
};
export declare const TEST_DATA__DefaultDepotReport: {
    dependencyReport: {
        graph: {
            nodes: never[];
            rootNodes: never[];
        };
        conflicts: never[];
    };
};
export declare const TEST__provideMockedEditorStore: (customization?: {
    mock?: EditorStore;
    applicationStore?: LegendStudioApplicationStore;
    graphManagerState?: GraphManagerState;
    pluginManager?: LegendStudioPluginManager;
}) => EditorStore;
export declare const TEST__openAndAssertPathWithElement: (path: string, renderResult: RenderResult, closePackage?: boolean) => Promise<void>;
export declare const TEST__openElementFromExplorerTree: (path: string, renderResult: RenderResult) => Promise<void>;
/**
 * Setup the editor for testing, takes in a mocked editor store and data for initialization.
 * This methods helps mock certain feature initialization of the editor as well as to ensure to return
 * when the editor is ready.
 *
 * NOTE: this only provides basic initialization for the editor so that it starts up properly, for other test
 * cases, such as for the SDLC flow, we might want to customize this method or have a completely different
 * setup method
 */
export declare const TEST__setUpEditor: (MOCK__editorStore: EditorStore, data: {
    project: PlainObject<Project>;
    workspace: PlainObject<Workspace>;
    curentRevision: PlainObject<Revision>;
    entities: PlainObject<Entity>[];
    projectVersions: PlainObject<Version>[];
    projectConfiguration: PlainObject<ProjectConfiguration>;
    latestProjectStructureVersion: PlainObject<ProjectStructureVersion>;
    availableGenerationDescriptions: GenerationConfigurationDescription[];
    projects: PlainObject<StoreProjectData>[];
    projectDependency: PlainObject<ProjectVersionEntities>[];
    projectDependencyVersions: string[];
    projectDependencyReport: PlainObject<RawProjectDependencyReport>;
}, viewerMode?: boolean) => Promise<RenderResult>;
export declare const TEST__setUpEditorWithDefaultSDLCData: (MOCK__editorStore: EditorStore, overrides?: {
    project?: PlainObject<Project>;
    workspace?: PlainObject<Workspace>;
    curentRevision?: PlainObject<Revision>;
    entities?: PlainObject<Entity>[];
    projectVersions?: PlainObject<Version>[];
    projectConfiguration?: PlainObject<ProjectConfiguration>;
    latestProjectStructureVersion?: PlainObject<ProjectStructureVersion>;
    availableGenerationDescriptions?: GenerationConfigurationDescription[];
    projects?: PlainObject<StoreProjectData>[];
    projectData?: PlainObject<StoreProjectData>[];
    projectDependency?: PlainObject<ProjectVersionEntities>[];
    projectDependencyVersions?: string[];
    projectDependencyReport?: PlainObject<RawProjectDependencyReport>;
}, viewerMode?: boolean) => Promise<RenderResult>;
//# sourceMappingURL=EditorComponentTestUtils.d.ts.map