export declare const TENANT_UNDEFINED = "TENANT_UNDEFINED"; export declare const CONTENTPROJECTMETADATA_DEFAULT_ROOTCOMPONENTID = "CONTENTPROJECTMETADATA_DEFAULT_ROOTCOMPONENTID"; export declare const DEFAULT_RLCS_WAITING_TIME = 1000; export declare const defaultContentMetadataFilePathInWorkingFolder = "./content/metadata.json"; export declare class RubensLocalContentServerSettings { /** * Define the port number on which the RLCS starts. * This has to be set if you want to automatically start the RLCS on VS Code start. * To achieve this, choose a different port number than you have in your VS Code settings as the default one * (see `roomletool.rubensLocalContentServerDefaultPortNumber` and `roomletool.automaticRubensLocalContentServerStart`). */ port: number | undefined; /** * RLCS will hot-reload content when a componentId changes. You can use this to exclude certain componentIds from the hot-reload. * Use ? for single any character and * for multiple characters. */ excludedComponentIdPatterns: string[] | undefined; /** this is converted to regexes to be able to match it fast */ private excludedComponentIdRegexes; /** Timeout before hot-reload to wait for an eventual change of furhter components. * This is useful for generated content, where the content is generated in multiple steps, to prevent overloading of the configurator instance. * @default 1000 */ contentChangeWaitTime: number | undefined; setExcludedComponentIds(excludedComponentIds: string[]): void; getExcludedComponentIds(): string[] | undefined; componentIdIsExcluded(componentId: string): boolean; getContentChangeWaitTime(): number; } export declare class ContentProjectsMetadata { /** If set, this is the label that will show in the project selector. */ name?: string; /** * Required. Define the root component of your project from where all the dependencies can be reached by static analysis of the JSON properties. * Be careful when using `requestDockItem` calls, because the dependecy collector will miss any hard-coded itemIds in the script, as it only * statically crawls the JSON properties. Either add the itemId or the componentId as a possibleChild with a false condition or add it to this list. */ rootComponentIds: string[]; /** * Add any loose itemIds or componentIds dependencies into this list. This is useful especially for variants. */ listOfIds?: any; /** If set to true, this project will be included in the projects quick build or preselected when you start the compile project command. */ quickBuild?: boolean; /** * If set, all found dependencies will change into the given catalog. You can set multiple catalogs here. This is useful for compiling * copies into draft catalogs. */ compileCatalogs?: string[]; constructor(rootComponentIds: string | string[] | undefined, name: string | undefined); static fromAny(obj: any): ContentProjectsMetadata; } export declare class ContentMetadata { /** If the tenant account name is different from your project root folder, set this to the tenant name, so that you get correct links to the Rubens Admin. */ tenant: string; /** If you manage multiple catalogs belonging to different tenants in your project folder, you can override the basic `tenant` value for the given catalogs. */ catalogToTenantOverride: Record; /** Rubens Local Content Server settings for the server-side. */ contentServer: RubensLocalContentServerSettings | undefined; /** * Use contentServer.port instead * @deprecated */ contentServerPort: number | undefined; /** Set up your content projects here. */ projects: ContentProjectsMetadata[]; /** path to the metadata file */ private path; /** timestamp to check when the file was retrieved from drive in order to check for changes */ private timestamp; constructor(contentMetadataFilePath: string | undefined); loadFile(): void; /** * Provides the value `contentServerPort` from the metadata.json file or undefined if not set. */ getContentServerPort(): number | undefined; getContentChangeWaitTime(): number; reloadFileIfChanged(): void; /** * If catalog is in the catalogToTenantOverride, return the tenant from the catalogToTenantOverride * If the catalog is the draft, return the tenant from the live catalogueID, unless the draft has been specifically defined * If not catalog is overridden, return the tenant from the metadata.json * If the tenant in the metadata.json is undefined, return the tenant from the folder name * * @param catalog the catalog ID * @returns */ getTenantOfCatalog(catalog: string): string; setTenant(tenant: string): void; setTenantOfCatalog(catalog: string, tenant: string): void; componentIdIsExcluded(componentId: string): boolean; export(): void; }