import { Id } from '../classes/id'; import { ProjectFileService } from '../classes/projectfileservice'; import { ParsedTextureFileName } from './createparsetexturefilename'; /** * Returns a minimal scaffolded component definition object. * This is useful for creating a new component file with basic structure. * This is called by VS Code when creating a new component file. * @param componentId either Id object or string representing the component's full id (e.g. 'catalog:comp123') * @returns object with a basic component definition */ export declare function scaffoldComponentDefinition(componentId: Id | string): any; /** * Returns a minimal scaffolded item definition object. * This is useful for creating a new item file with basic structure. * This is called by VS Code when creating a new item file and with the Scaffold or Fix Item Definition command. * If existingContent is provided, it will be used to preserve existing properties. All IDs are updated to match expectedId. * If you copy a file around, the expected ID according to the path is changed. This function ensures that the content's ID matches the expected ID from the path. * Use `getIdAndTypeFromPath` to get the expected ID from the file path first. * @param expectedId * @param existingContent * @returns a new object which can be a shallow copy of existingContent with updated ids, or a new scaffolded item definition */ export declare function scaffoldItemDefinition(expectedId: Id, existingContent: string | any | undefined): any; /** * Scaffolds an item JSON document in the project file system at the given file path. * If expectedId is not provided or invalid, it will be extracted from the file path. * If an item with the expected ID already exists, its content will be used to preserve existing properties. * The scaffolded content will be stored in the project file system. * This is called in VS Code when using the right-click Scaffold or Fix Item Definition command on an item file or directory. * @param projectFileService The project file service to use for storing the asset. * @param filePath The file path where the item JSON document should be scaffolded. * @param expectedId The expected ID of the item. If not provided or invalid, it will be extracted from the file path. */ export declare function scaffoldItemJsonDocumentInFileSystem(projectFileService: ProjectFileService, filePath: string, expectedId: Id | undefined): void; /** * Useful for creating or updating a material definition with given textures. * Existing material will be deep copied and textures added or replaced. * If ParsedTextureFileName is given, it will be converted to TextureObject with minimal properties and attached to the texture. * If a texture object with a given mapping exists, it will be replaced. * @param materialId the final intended **FULL ID** (including catalogId) of the material * @param texturesFromFiles textures to add or replace (by mapping) * @param projectFileService: required if any file operation should be done (e.g. copying textures * @param options * @param existingMaterial an existing material definition to base the scaffold on * @param doNotGetExistingMaterialFromDriveIfNotProvided if true and existingMaterial is not provided, existing material from project file service is ignored */ export declare function scaffoldMaterialFromTextureFiles(materialId: Id | string, texturesFromFiles: ParsedTextureFileName[], projectFileService: ProjectFileService, options?: { existingMaterial: any; doNotGetExistingMaterialFromDriveIfNotProvided?: boolean; }): any;