/**
 * 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 { ConceptActivity, InitializationResult, InitializationActivity } from '../server/models/Initialization.js';
import type { DirectoryNode } from '../server/models/DirectoryTree.js';
import type { ConceptNode } from '../server/models/ConceptTree.js';
import type { ExecutionActivity, ExecutionResult } from '../server/models/Execution.js';
import type { FileData } from './models/File.js';
import type { SearchResultCoordinate, SearchResultEntry } from '../server/models/SearchEntry.js';
import { type AbstractTestRunnerCheckResult, type TestRunnerCancelResult } from '../server/models/Test.js';
import { type Usage, type ConceptInfo, type PackageableElementUsage } from '../server/models/Usage.js';
import type { CommandResult } from '../server/models/Command.js';
import { type NetworkClient, type PlainObject } from '@finos/legend-shared';
import type { DiagramClassInfo, DiagramInfo } from '../server/models/DiagramInfo.js';
import type { SourceModificationResult, UpdateSourceInput } from './models/Source.js';
import type { RenameConceptInput } from './models/RenameConcept.js';
import type { ChildPackageableElementInfo, MovePackageableElementsInput } from './models/MovePackageableElements.js';
import type { AttributeSuggestion, ClassSuggestion, ElementSuggestion, VariableSuggestion } from './models/Suggestion.js';
export declare class PureServerClient {
    private readonly networkClient;
    userId: string;
    sessionId: string;
    compilerMode?: string | undefined;
    mode?: string | undefined;
    constructor(networkClient: NetworkClient);
    get baseUrl(): string;
    initialize: (requestCache: boolean) => Promise<PlainObject<InitializationResult>>;
    getInitializationActivity: () => Promise<PlainObject<InitializationActivity>>;
    getConceptActivity: () => Promise<PlainObject<ConceptActivity>>;
    execute: (openFiles: PlainObject<FileData>[], url: string, extraParams?: Record<PropertyKey, unknown>) => Promise<PlainObject<ExecutionResult>>;
    getExecutionActivity: () => Promise<PlainObject<ExecutionActivity>>;
    findFiles: (searchText: string, isRegExp: boolean) => Promise<string[]>;
    searchText: (searchText: string, isCaseSensitive: boolean, isRegExp: boolean, limit?: number) => Promise<PlainObject<SearchResultEntry>[]>;
    getTextSearchPreview: (coordinates: SearchResultCoordinate[]) => Promise<PlainObject<SearchResultCoordinate>[]>;
    checkTestRunner: (testRunnerId: number) => Promise<PlainObject<AbstractTestRunnerCheckResult>>;
    cancelTestRunner: (testRunnerId: number) => Promise<TestRunnerCancelResult>;
    getPCTAdapters: () => Promise<PlainObject<Usage>[]>;
    getConceptChildren: (path?: string) => Promise<PlainObject<ConceptNode>[]>;
    getConceptInfo: (file: string, line: number, column: number) => Promise<ConceptInfo>;
    getUsages: (func: string, param: string[]) => Promise<PlainObject<Usage>[]>;
    renameConcept: (input: RenameConceptInput) => Promise<void>;
    movePackageableElements: (inputs: MovePackageableElementsInput[]) => Promise<void>;
    getPackageableElementsUsage: (paths: string[]) => Promise<PlainObject<PackageableElementUsage>[]>;
    getChildPackageableElements: (packagePath: string) => Promise<ChildPackageableElementInfo[]>;
    getFile: (path: string) => Promise<PlainObject<File>>;
    getDirectoryChildren: (path?: string) => Promise<PlainObject<DirectoryNode>[]>;
    updateSource: (updateInputs: UpdateSourceInput[]) => Promise<PlainObject<SourceModificationResult>>;
    createFile: (path: string) => Promise<PlainObject<CommandResult>>;
    createFolder: (path: string) => Promise<PlainObject<CommandResult>>;
    renameFile: (oldPath: string, newPath: string) => Promise<PlainObject<CommandResult>>;
    deleteDirectoryOrFile: (path: string) => Promise<PlainObject<CommandResult>>;
    getDiagramInfo: (diagramPath: string) => Promise<PlainObject<DiagramInfo>>;
    getDiagramClassInfo: (classPath: string) => Promise<PlainObject<DiagramClassInfo>>;
    getSuggestionsForIncompletePath: (currentPackagePath: string, types: string[]) => Promise<PlainObject<ElementSuggestion>[]>;
    getSuggestionsForIdentifier: (importPaths: string[], types: string[]) => Promise<PlainObject<ElementSuggestion>[]>;
    getSuggestionsForAttribute: (importPaths: string[], path: string) => Promise<PlainObject<AttributeSuggestion>[]>;
    getSuggestionsForClass: (importPaths: string[]) => Promise<PlainObject<ClassSuggestion>[]>;
    getSuggestionsForVariable: (sourceId: string, line: number, column: number) => Promise<PlainObject<VariableSuggestion>[]>;
}
//# sourceMappingURL=PureServerClient.d.ts.map