import * as vscode from 'vscode'; import * as projectmanager from './ProjectManager'; /** * @interface FsProjectManager * * @description Filesystem project manager class let handling of an Edge.AI project data model stored within local fileystem */ export declare class FsProjectManager extends projectmanager.IProjectManager { readonly baseUri: vscode.Uri; readonly projectSchemaUri: vscode.Uri; protected __project: any; set _project(value: any); get _project(): any; protected _parsedProject: projectmanager.Project | undefined; get project(): projectmanager.Project; protected _onDidChangeProject: vscode.EventEmitter; onDidChangeProject: vscode.Event; private projectFileWatcher; constructor(baseUri: vscode.Uri, projectSchemaUri: vscode.Uri); /** * Inerithed methods */ /** * @name connect * @description Connect to project json file by instantianting filesystem listeners, and set it as current project * * @param uri Filesystem URI referring to project json file */ connect(uri: vscode.Uri): Promise; /** * @name load * @description Load project json file from filesystem and fire project change event */ load(): Promise; /** * @name newProject * @description Load project json file from filesystem and fire project change event * * @param projectId Project ID (optional). If not provided, it will be generated following UUID v4 format * @param name Project name * @param description Project description * @param owner Project owner ID (not required). If provided, it will be ignored * @param version Project version (optional). If not provided, will be assigned the default version (i.e. "0.0.1") */ newProject(projectId: string | undefined, name: string, description: string, owner: string | undefined, version?: string | undefined): Promise; /** * @name addModel * @description Create a new model for the current project * * @param modelId Model ID (optional). If not provided, it will be generated following UUID v4 format * @param inputId Input ID (optional). If not provided, it will be generated following UUID v4 format * @param outputId Output ID (optional). If not provided, it will be generated following UUID v4 format * @param name Model name * @param stage Model stage * @param inputType Model input type * @param modelType Model type * @param outputType Model output type * @param trainingType Model training type * @param modelMetadata Model metadata * @param inputTools Model input tools * @param outputTools Model output tools * @returns Descriptor for the model (just) created */ addModel(modelId: string | undefined, inputId: string | undefined, outputId: string | undefined, name: string, stage: projectmanager.ModelStage, inputType: projectmanager.InputType, modelType: projectmanager.ModelType, outputType: projectmanager.OutputType, trainingType: projectmanager.TrainingType, modelMetadata: any, inputTools: projectmanager.Tool[], outputTools: projectmanager.Tool[]): projectmanager.Model; /** * @name updateModel * @description Update existing model with input parameters (if provided) * * @param modelId Model ID * @param description Model description (optional). If not provided, field will be not updated * @param stage Model stage (optional). If not provided, field will be not updated * @param classes Model classes (optional). If not provided, field will be not updated * @param augmentations Model augmentations (optional). If not provided, field will be not updated */ updateModel(modelId: string, description: string | undefined, stage: projectmanager.ModelStage | undefined, classes: string[] | undefined, augmentations?: string[] | undefined): void; /** * @name removeModel * @description Remove existing model * * @param modelId Model ID */ removeModel(modelId: string): void; /** * @name addExperiment * @description Create a new experiment for a given model * * @param modelId Model ID * @param experimentId Experiment ID (optional). If not provided, it will be generated following UUID v4 format * @param name Exeperiment name * @param description Experiment description * @param modelDevFile Model development filename * @returns Descriptor for the experiment (just) created */ addExperiment(modelId: string, experimentId: string | undefined, name: string, description: string, modelDevFile: string | null): projectmanager.Experiment; /** * @name updateExperiment * @description Update existing experiment with input parameters (if provided) * * @param modelId Model ID * @param experimentId Experiment ID * @param description Experiment description (optional). If not provided, field will be not updated * @param classes Model development file name (optional). If not provided, field will be not updated */ updateExperiment(modelId: string, experimentId: string, description: string | undefined, modelDevFile: string | null | undefined): void; /** * @name removeExperiment * @description Remove existing experiment * * @param modelId Model ID * @param experimentId Experiment ID */ removeExperiment(modelId: string, experimentId: string): void; /** * @name addTest * @description Create a new test for a given experiment * * @param modelId Model ID * @param experimentId Experiment ID * @param testId Test ID (optional). If not provided, it will be generated following UUID v4 format * @param name Test name * @param modelFile Model file name * @returns Descriptor for the test (just) created */ addTest(modelId: string, experimentId: string, testId: string | undefined, name: string, modelFile: string | null): projectmanager.Test; /** * @name updateTest * @description Update existing test with input parameters (if provided) * * @param modelId Model ID * @param testId Test ID * @param parameters Parameters used to generate reports and/or output. If not provided, field will be not updated * @param reports Report filenames. If not provided, field will be not updated * @param outputs Ouputs filenames. If not provided, field will be not updated * @param isBest Is the best test? (default false) */ updateTest(modelId: string, testId: string, parameters: any, reports: string[] | undefined, outputs: string[] | undefined, isBest?: boolean | undefined): any; /** * @name removeTest * @description Remove existing test * * @param modelId Model ID * @param experimentId Experiment ID * @param testId Test ID */ removeTest(modelId: string, experimentId: string, testId: string): void; /** * Additional methods */ /** * @name commit * @description Commit local changes by storing them on the project file current referred */ commit(): Promise; /** * @name disconnect * @description Disconnect from current project disposing filesystem watchers */ disconnect(): Promise; /** * @name setBestTest * @description Set current test as best for the model * * @param modelId Model ID * @param testId Test ID */ setBestTest(modelId: string, testId: string): void; /** * @name updateTestReports * @description Update report filenames and related parameters for the test * * @param modelId Model ID * @param testId Test ID * @param parameters Parameters used to generate the reports * @param reports New report filenames */ updateTestReports(modelId: string, testId: string, parameters: any, reports: Array): void; /** * @name updateTestOutputs * @description Update output filenames and related parameters for the test * * @param modelId Model ID * @param testId Test ID * @param parameters Parameters used to generate the outputs * @param reports New output filenames */ updateTestOutputs(modelId: string, testId: string, parameters: any, outputs: Array): void; /** * @name addModelAugmentation * @description Add augmentation filename for the model * * @param modelId Model ID * @param name Augmentation filename */ addModelAugmentation(modelId: string, name: string): void; /** * @name removeModelAugmentation * @description Remove augmentation filename for the model * * @param modelId Model ID * @param name Augmentation filename */ removeModelAugmentation(modelId: string, name: string): void; }