/**
 * 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.
 */
/// <reference types="react" resolution-mode="require"/>
import { type RenderResult } from '@testing-library/react';
import { EditorStore } from '../stores/EditorStore.js';
import { type PlainObject } from '@finos/legend-shared';
import { LegendStudioPluginManager } from '../application/LegendStudioPluginManager.js';
import type { Entity } from '@finos/legend-model-storage';
import { type Project, type ProjectConfiguration, type ProjectStructureVersion, type Revision, type SDLCServerClient, type Version, type Workspace } from '@finos/legend-server-sdlc';
import { type ImportConfigurationDescription, type ImportMode, type GenerationConfigurationDescription, type GenerationMode, type GraphManagerState } from '@finos/legend-graph';
import { type DepotServerClient, type ProjectData, type ProjectVersionEntities } 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: {
        label: string;
        key: string;
        modelImportMode: ImportMode;
    }[];
    availableCodeImports: {
        label: string;
        key: string;
        modelImportMode: ImportMode;
    }[];
    availableSchemaGenerations: GenerationConfigurationDescription[];
    availableCodeGenerations: {
        label: string;
        properties: never[];
        key: string;
        generationMode: GenerationMode;
    }[];
};
export declare const TEST__LegendStudioBaseStoreProvider: React.FC<{
    children: React.ReactNode;
}>;
export declare const TEST__provideMockedEditorStore: (customization?: {
    mock?: EditorStore;
    applicationStore?: LegendStudioApplicationStore;
    sdlcServerClient?: SDLCServerClient;
    depotServerClient?: DepotServerClient;
    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[];
    availableImportDescriptions: ImportConfigurationDescription[];
    projects: PlainObject<ProjectData>[];
    projectData: PlainObject<ProjectData>[];
    projectDependency: PlainObject<ProjectVersionEntities>[];
}) => 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[];
    availableImportDescriptions?: ImportConfigurationDescription[];
    projects?: PlainObject<ProjectData>[];
    projectData?: PlainObject<ProjectData>[];
    projectDependency?: PlainObject<ProjectVersionEntities>[];
}) => Promise<RenderResult>;
//# sourceMappingURL=EditorComponentTestUtils.d.ts.map