import { RootDenoJson } from './root-deno-json.js'; import type { Manager } from './manager.js'; import { Generator } from './generator.js'; import { ClientJson } from './client-json.js'; import { PrettierJson } from './prettier-json.js'; import type { SkmtcRoot } from './skmtc-root.js'; import { SchemaFile } from './schema-file.js'; import type { ApiClient } from './api-client.js'; import { Manifest } from './manifest.js'; import type { SkmtcDispatch, SkmtcState, SkmtcMessage } from '../components/SkmtcContext.js'; import type { Generator as GeneratorType } from '../types/generator.generated.js'; type AddGeneratorArgs = { moduleName: string; type: 'operation' | 'model'; username: string; }; type CloneGeneratorArgs = { projectName: string; moduleName: string; generatorsDenoJson: Record; }; type DeployArgs = { state: SkmtcState; dispatch: SkmtcDispatch; dispatchMessage: (payload: SkmtcMessage) => void; }; type InstallGeneratorArgs = { moduleName: string; }; type InstallOptions = { logSuccess?: string; }; type RemoveGeneratorArgs = { moduleName: string; }; type RemoveOptions = { logSuccess?: string; }; type CreateArgs = { name: string; basePath: string; generators: string[]; skmtcRoot: SkmtcRoot; availableGenerators: GeneratorType[]; }; export declare class Project { name: string; rootDenoJson: RootDenoJson; clientJson: ClientJson; prettierJson: PrettierJson | null; manifest: Manifest; manager: Manager; schemaFile: SchemaFile; private constructor(); toPath(): string; static create({ name, basePath, generators, skmtcRoot, availableGenerators }: CreateArgs): Promise; cloneGenerator({ projectName, moduleName, generatorsDenoJson }: CloneGeneratorArgs): Promise; installGenerator({ moduleName }: InstallGeneratorArgs, { logSuccess }?: InstallOptions): Promise; toManifestPath(): string; rename(newName: string): Promise; removeGenerator({ moduleName }: RemoveGeneratorArgs, { logSuccess }?: RemoveOptions): Promise; toGeneratorIds(): string[]; hasServerWriteAccess(apiClient: ApiClient): Promise; deploy({ state, dispatch, dispatchMessage }: DeployArgs): Promise; addGenerator({ moduleName, type, username }: AddGeneratorArgs): Promise; toProjectKey(): ProjectKey; static open(name: string, manager: Manager): Promise; } type GetDependencyIdsArgs = { checkedIds: Set; options: GeneratorType[] | undefined; generatorIds: Set; }; export declare const getDependencyIds: ({ checkedIds, options, generatorIds }: GetDependencyIdsArgs) => Set; export type ProjectKey = `@${string}/${string}`; export declare const isProjectKey: (value: string) => value is ProjectKey; export declare const toProjectKey: (value: string) => ProjectKey; export {}; //# sourceMappingURL=project.d.ts.map