import { CodeDir, CodeRW } from '@iteria-app/generator'; import { IntrospectionQuery, GraphQLTree } from '@iteria-app/graphql-lowcode'; import { URI } from 'vscode-uri'; import { WindowMessaging } from '../messaging'; import { EnvObject, IFiles } from '../types'; import { VSCodeFSTransferableError } from '../vscode/errors'; import { Directory, FileStat, FileType } from '../vscode/vfs'; import WatcherProxyFS from '../watcher/WatcherProxyFS'; import { Toast } from '../react-instrumentation/userFeedback'; import { DocumentNode } from 'graphql'; import ChangeHistory from '../watcher/ChangeHistory'; import DevServerWatcherFS from '../watcher/DevServerWatcherFS'; export interface FileWriteData { path: string; data: string; } export interface FileDeleteData { path: string; } export interface ProjectLoadedData { files: IFiles; } interface DirectoryFiles { fileName?: string; filePath?: string; fileType?: 'file' | 'dir'; fileContent?: string; } export declare type GetProjectZipData = { url: string; }; export declare class DevWorkbench implements CodeRW, CodeDir { constructor(messagingService: WindowMessaging, fsPort?: number, files?: IFiles); messagingService: WindowMessaging; feedbackStack: { toast: Toast; payload: { type: string; payload: any; }; }[]; graphQLEndpoint: string; graphQLSecret: string; graphQLDocuments: { [key: string]: DocumentNode; }; graphQLTree: GraphQLTree; history: ChangeHistory; introspection: IntrospectionQuery; env: { [key: string]: string; }; cwd: string; fs: WatcherProxyFS; private readonly memfs; private readonly fetchfs; injectMode: 'jamstack' | 'devServer'; mode: 'production' | 'development'; command: 'build' | 'serve'; devWatcher: DevServerWatcherFS; private transpiledFiles; generateGraphql(files: FileWriteData[]): Promise<{ generatedFilePaths: { graphql: string; introspection: string; }; generated: any; } | { generated: { errors: string; }; }>; fileExists(path: string): Promise; readDirectoryContent(path: string, files?: DirectoryFiles[]): Promise; readFile(path: string, encoding?: string): Promise; readDirectory(path: string, recursive?: boolean, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): Promise; writeFile(path: string, data: string): Promise; renameFile(oldPath: string, newPath: string): Promise; deleteFile(path: string): Promise; writeFiles(files: FileWriteData[]): Promise; parseEnvs(): Promise; readEnvFileContent(): Promise; writeEnvFileContent(data: string): Promise; rename(oldUri: URI, newUri: URI, options: { overwrite: boolean; }): VSCodeFSTransferableError | void; delete(uri: URI): VSCodeFSTransferableError | void; stat(uri: URI): FileStat | VSCodeFSTransferableError; createDirectory(uri: URI): VSCodeFSTransferableError | void; deleteFiles(files: FileDeleteData[]): Promise; setPort(fsPort: number): void; private _transformObjectToFsTree; setCwd(cwd: string): void; transformFsTreeToObject(root: Directory): IFiles; readFileTree(uri: URI): Uint8Array | VSCodeFSTransferableError; readDirectoryTree(uri: URI): [string, FileType][] | VSCodeFSTransferableError; writeFileTree(uri: URI, content: Uint8Array, options: { create: boolean; overwrite: boolean; }): Promise; private _renameInTranspiledFiles; private _deleteInTranspiledFiles; getRoot(): Directory; setInjectionMode(injectMode: 'jamstack' | 'devServer'): void; setGraphQLEndpoint(graphQLEndpoint: string, graphQLSecret: string): void; setIntrospection(introspection: IntrospectionQuery): void; setMode(mode: 'production' | 'development'): void; setCommand(command: 'build' | 'serve'): void; setEnv(env: { [key: string]: string; }): void; } export {};