Hook useShell()
useShell(
config:Pick<ShellConfig,"app"|"path"|"input"|"exit"|"sizeRef">): [Shell, {history: readonly {text?:string;isCommand:boolean;value?:string;clear?:boolean; }[];line:string;historyOffset:number;workingDirectory: {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....;files: readonly ({extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: ...;files: ...;type: ...;setAlias:this;hasFile: ...;hasFolder: ...;findFile: ...;findSubFolder: ...;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ...;navigateToFolder: ...;navigateToFile: ...;open: ...;delete: ...;getFiles: ...;getSubFolders: ...;getItemCount: ...;isFolder:this is (...);getIconUrl: ...;shortcuts: ...;initiated: ...;loadedDefaultData: ...;systemManager: ...;storage: ...;loadDefaultData: ...;loadData: ...;saveData: ...;init: ...;addShortcut: ...;reset: ...;path: ...;displayPath: ...;toJSON: ...;toString: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;id: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType: ...;confirmChanges: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFile:this is (...);on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } |null|undefined;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<... & ...,K>;once:Listener<... & ...,K>;onAsync:Listener<... & ...,K>;off:void;emit:void; } | {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;isFile:this is VirtualFile;getType:string;download:void;isDownloadable:boolean;linkedPath?:string;setLinkedFile:VirtualFileLink;setLinkedPath:VirtualFileLink;isValid:boolean;toJSON:VirtualFileLinkJson|null;setAlias:VirtualFileLink;setSource:VirtualFileLink;setContent:VirtualFileLink;id:string;open:object|null;read:Promise<... | ... | ...>;getIconUrl:string;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension: ...;source: ...;content: ...;setAlias:this;setSource:this;setContent:this;id: ...;open: ...;read: ...;isFile:this is (...);getIconUrl: ...;getType: ...;download: ...;isDownloadable: ...;toJSON: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: ...;files: ...;type: ...;setAlias:this;hasFile: ...;hasFolder: ...;findFile: ...;findSubFolder: ...;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ...;navigateToFolder: ...;navigateToFile: ...;open: ...;delete: ...;getFiles: ...;getSubFolders: ...;getItemCount: ...;isFolder:this is (...);getIconUrl: ...;shortcuts: ...;initiated: ...;loadedDefaultData: ...;systemManager: ...;storage: ...;loadDefaultData: ...;loadData: ...;saveData: ...;init: ...;addShortcut: ...;reset: ...;path: ...;displayPath: ...;toJSON: ...;toString: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;id: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType: ...;confirmChanges: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFile:this is (...);on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } |null|undefined;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<... & ...,K>;once:Listener<... & ...,K>;onAsync:Listener<... & ...,K>;off:void;emit:void; })[];type:number|undefined;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;delete:void;isFolder:this is VirtualFolder<VirtualBaseEvents>;linkedPath?:string;setLinkedFolder:VirtualFolderLink;setLinkedPath:VirtualFolderLink;isValid:boolean;getIconUrl:string;toJSON:VirtualFolderLinkJson|null;setAlias:VirtualFolderLink;createFile:VirtualFolderLink;createFiles:VirtualFolderLink;createFolder:VirtualFolderLink;createFolders:VirtualFolderLink;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];open:object|null|undefined;getItemCount:number;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....;files: readonly ...[];type: ... | ...;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile: ... | ... | ...;findSubFolder: ... | ... | ...;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ... | ... | ...;navigateToFolder: ... | ...;navigateToFile: ... | ...;open: ... | ... | ...;delete:void;getFiles: ...[];getSubFolders: ...[];getItemCount:number;isFolder:this is VirtualFolder<(...)>;getIconUrl:string;shortcuts: {[key: ...]: ...; };initiated:boolean;loadedDefaultData:boolean;systemManager: {systemName: ...;tagLine: ...;skin: ...;appsConfig: ...;desktopConfig: ...;miscConfig: ...;modalsConfig: ...;taskbarConfig: ...;trackingConfig: ...;windowsConfig: ...;virtualDriveConfig: ...;storage: ...;getUptime: ...; };storage: {enableCompression: ...;prefix: ...;rename:this;remove:this;clear:this;getItemByteSize: ...;getEncodedByteSize: ...;encode: ...;decode: ...;setPrefix:this;virtualDriveConfig: ...;load: ...;store: ...;synchronize: ...; };loadDefaultData:void;loadData:void;saveData:void;init:VirtualRoot;addShortcut:VirtualRoot;reset:void;path:string;displayPath:string;toJSON: ... | ...;toString: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<..., ...>,K>;once:Listener<VirtualFileEvents&Record<..., ...>,K>;onAsync:Listener<VirtualFileEvents&Record<..., ...>,K>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....;files: readonly ({extension: ...;source: ...;content: ...;setAlias:this;setSource:this;setContent:this;id: ...;open: ...;read: ...;isFile:this is (...);getIconUrl: ...;getType: ...;download: ...;isDownloadable: ...;toJSON: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } | {extension: ...;source: ...;content: ...;isFile:this is (...);getType: ...;download: ...;isDownloadable: ...;linkedPath?: ...;setLinkedFile: ...;setLinkedPath: ...;isValid: ...;toJSON: ...;setAlias: ...;setSource: ...;setContent: ...;id: ...;open: ...;read: ...;getIconUrl: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; })[];type:number|undefined;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;open:object|null|undefined;delete:void;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];getItemCount:number;isFolder:this is VirtualFolder<VirtualBaseEvents>;getIconUrl:string;shortcuts: {[key:string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; } | {extension: ...;source: ...;content: ...;setAlias:this;setSource:this;setContent:this;id: ...;open: ...;read: ...;isFile:this is (...);getIconUrl: ...;getType: ...;download: ...;isDownloadable: ...;toJSON: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } | {extension: ...;source: ...;content: ...;isFile:this is (...);getType: ...;download: ...;isDownloadable: ...;linkedPath?: ...;setLinkedFile: ...;setLinkedPath: ...;isValid: ...;toJSON: ...;setAlias: ...;setSource: ...;setContent: ...;id: ...;open: ...;read: ...;getIconUrl: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; }; };initiated:boolean;loadedDefaultData:boolean;systemManager: {systemName:string;tagLine:string;skin: {systemIcon:string;appIcons: ... | ...;appNames: ... | ...;wallpapers: readonly ...[];defaultWallpaper:string;fileIcons: {generic: ...;info?: ...;text?: ...;code?: ...;external?: ...;video?: ...;audio?: ...; };folderIcons: {generic: ...;images?: ...;text?: ...;link?: ...;video?: ...;audio?: ...; };loadStyleSheet: ... | ...;defaultTheme: ... | ...; };appsConfig: {apps: readonly ...[];installedApps: readonly ...[];getAppById: ... | ...;getAppByFileExtension: ... | ...;getAppByRole: ... | ...;getAppsByCategory: ...[]; };desktopConfig: {defaultIconSize: ... | ... | ...;defaultIconDirection: ... | ...; };miscConfig: {doubleClickDelay:number; };modalsConfig: {defaultDialogSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; };defaultFileSelectorSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };taskbarConfig: {height:number; };trackingConfig: {enabled:boolean;googleAnalyticsMeasurementId:string; };windowsConfig: {screenMargin:number;titleSeparator:string;minScreenSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };virtualDriveConfig: {saveData: ... | ...;defaultData: {includePicturesFolder?: ...;includeDocumentsFolder?: ...;includeDesktopFolder?: ...;includeSourceTree?: ...;includeAppsFolder?: ...;loadData?: ...; }; };storage: {enableCompression:boolean;prefix: ... | ...;store:void;load: ... | ...;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result: ...;size: ...; };decode:string;setPrefix:this; };getUptime:string; };storage: {enableCompression:boolean;prefix:string|undefined;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result:string;size:number; };decode:string;setPrefix:this;virtualDriveConfig: {saveData: ... | ...;defaultData: {includePicturesFolder?: ...;includeDocumentsFolder?: ...;includeDesktopFolder?: ...;includeSourceTree?: ...;includeAppsFolder?: ...;loadData?: ...; }; };load:string|null;store:void;synchronize:void; };loadDefaultData:void;loadData:void;saveData:void;init:VirtualRoot;addShortcut:VirtualRoot;reset:void;path:string;displayPath:string;toJSON:VirtualRootJson|null;toString:string|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open: ... | ...;read:Promise<...>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;on:Listener<VirtualRootEvents&Record<..., ...>,K>;once:Listener<VirtualRootEvents&Record<..., ...>,K>;onAsync:Listener<VirtualRootEvents&Record<..., ...>,K>;off:void;emit:void; } |null|undefined;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;toString:string|null;on:Listener<VirtualBaseEvents&Record<"update",unknown[]>,K>;once:Listener<VirtualBaseEvents&Record<"update",unknown[]>,K>;onAsync:Listener<VirtualBaseEvents&Record<"update",unknown[]>,K>;off:void;emit:void; })[];files: readonly ({extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: ...;files: ...;type: ...;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ...;navigateToFolder: ...;navigateToFile: ...;delete: ...;isFolder:this is (...);linkedPath?: ...;setLinkedFolder: ...;setLinkedPath: ...;isValid: ...;getIconUrl: ...;toJSON: ...;setAlias: ...;createFile: ...;createFiles: ...;createFolder: ...;createFolders: ...;hasFile: ...;hasFolder: ...;findFile: ...;findSubFolder: ...;getFiles: ...;getSubFolders: ...;open: ...;getItemCount: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;id: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFile:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; })[];files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { ...; })[];type:number|undefined;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;open:object|null|undefined;delete:void;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];getItemCount:number;isFolder:this is VirtualFolder<VirtualBaseEvents>;getIconUrl:string;shortcuts: {[key:string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: ...;files: ...;type: ...;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ...;navigateToFolder: ...;navigateToFile: ...;delete: ...;isFolder:this is (...);linkedPath?: ...;setLinkedFolder: ...;setLinkedPath: ...;isValid: ...;getIconUrl: ...;toJSON: ...;setAlias: ...;createFile: ...;createFiles: ...;createFolder: ...;createFolders: ...;hasFile: ...;hasFolder: ...;findFile: ...;findSubFolder: ...;getFiles: ...;getSubFolders: ...;open: ...;getItemCount: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;id: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFile:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } | { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | {extension: ...;source: ...;content: ...;isFile:this is (...);getType: ...;download: ...;isDownloadable: ...;linkedPath?: ...;setLinkedFile: ...;setLinkedPath: ...;isValid: ...;toJSON: ...;setAlias: ...;setSource: ...;setContent: ...;id: ...;open: ...;read: ...;getIconUrl: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; }; };initiated:boolean;loadedDefaultData:boolean;systemManager: {systemName:string;tagLine:string;skin: {systemIcon:string;appIcons: ... | ...;appNames: ... | ...;wallpapers: readonly ...[];defaultWallpaper:string;fileIcons: {generic: ...;info?: ...;text?: ...;code?: ...;external?: ...;video?: ...;audio?: ...; };folderIcons: {generic: ...;images?: ...;text?: ...;link?: ...;video?: ...;audio?: ...; };loadStyleSheet: ... | ...;defaultTheme: ... | ...; };appsConfig: {apps: readonly ...[];installedApps: readonly ...[];getAppById: ... | ...;getAppByFileExtension: ... | ...;getAppByRole: ... | ...;getAppsByCategory: ...[]; };desktopConfig: {defaultIconSize: ... | ... | ...;defaultIconDirection: ... | ...; };miscConfig: {doubleClickDelay:number; };modalsConfig: {defaultDialogSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; };defaultFileSelectorSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };taskbarConfig: {height:number; };trackingConfig: {enabled:boolean;googleAnalyticsMeasurementId:string; };windowsConfig: {screenMargin:number;titleSeparator:string;minScreenSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };virtualDriveConfig: {saveData: ... | ...;defaultData: {includePicturesFolder?: ...;includeDocumentsFolder?: ...;includeDesktopFolder?: ...;includeSourceTree?: ...;includeAppsFolder?: ...;loadData?: ...; }; };storage: {enableCompression:boolean;prefix: ... | ...;store:void;load: ... | ...;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result: ...;size: ...; };decode:string;setPrefix:this; };getUptime:string; };storage: {enableCompression:boolean;prefix:string|undefined;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result:string;size:number; };decode:string;setPrefix:this;virtualDriveConfig: {saveData: ... | ...;defaultData: {includePicturesFolder?: ...;includeDocumentsFolder?: ...;includeDesktopFolder?: ...;includeSourceTree?: ...;includeAppsFolder?: ...;loadData?: ...; }; };load:string|null;store:void;synchronize:void; };loadDefaultData:void;loadData:void;saveData:void;init:VirtualRoot;addShortcut:VirtualRoot;reset:void;path:string;displayPath:string;toJSON:VirtualRootJson|null;toString:string|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;on:Listener<VirtualRootEvents&Record<..., ...>,K>;once:Listener<VirtualRootEvents&Record<..., ...>,K>;onAsync:Listener<VirtualRootEvents&Record<..., ...>,K>;off:void;emit:void; } |null|undefined;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;once:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;onAsync:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;off:void;emit:void; } | {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;isFile:this is VirtualFile;getType:string;download:void;isDownloadable:boolean;linkedPath?:string;setLinkedFile:VirtualFileLink;setLinkedPath:VirtualFileLink;isValid:boolean;toJSON:VirtualFileLinkJson|null;setAlias:VirtualFileLink;setSource:VirtualFileLink;setContent:VirtualFileLink;id:string;open:object|null;read:Promise<string|null|undefined>;getIconUrl:string;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: readonly ...[];files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { ...; })[];type: ... | ...;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile: ... | ... | ...;findSubFolder: ... | ... | ...;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ... | ... | ...;navigateToFolder: ... | ...;navigateToFile: ... | ...;open: ... | ... | ...;delete:void;getFiles: ...[];getSubFolders: ...[];getItemCount:number;isFolder:this is VirtualFolder<(...)>;getIconUrl:string;shortcuts: {[key: ...]: ...; };initiated:boolean;loadedDefaultData:boolean;systemManager: {systemName: ...;tagLine: ...;skin: ...;appsConfig: ...;desktopConfig: ...;miscConfig: ...;modalsConfig: ...;taskbarConfig: ...;trackingConfig: ...;windowsConfig: ...;virtualDriveConfig: ...;storage: ...;getUptime: ...; };storage: {enableCompression: ...;prefix: ...;rename:this;remove:this;clear:this;getItemByteSize: ...;getEncodedByteSize: ...;encode: ...;decode: ...;setPrefix:this;virtualDriveConfig: ...;load: ...;store: ...;synchronize: ...; };loadDefaultData:void;loadData:void;saveData:void;init:VirtualRoot;addShortcut:VirtualRoot;reset:void;path:string;displayPath:string;toJSON: ... | ...;toString: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<..., ...>,K>;once:Listener<VirtualFileEvents&Record<..., ...>,K>;onAsync:Listener<VirtualFileEvents&Record<..., ...>,K>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: ...;files: ...;type: ...;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ...;navigateToFolder: ...;navigateToFile: ...;delete: ...;isFolder:this is (...);linkedPath?: ...;setLinkedFolder: ...;setLinkedPath: ...;isValid: ...;getIconUrl: ...;toJSON: ...;setAlias: ...;createFile: ...;createFiles: ...;createFolder: ...;createFolders: ...;hasFile: ...;hasFolder: ...;findFile: ...;findSubFolder: ...;getFiles: ...;getSubFolders: ...;open: ...;getItemCount: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;id: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFile:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; })[];files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { ...; })[];type:number|undefined;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;open:object|null|undefined;delete:void;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];getItemCount:number;isFolder:this is VirtualFolder<VirtualBaseEvents>;getIconUrl:string;shortcuts: {[key:string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: ...;files: ...;type: ...;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ...;navigateToFolder: ...;navigateToFile: ...;delete: ...;isFolder:this is (...);linkedPath?: ...;setLinkedFolder: ...;setLinkedPath: ...;isValid: ...;getIconUrl: ...;toJSON: ...;setAlias: ...;createFile: ...;createFiles: ...;createFolder: ...;createFolders: ...;hasFile: ...;hasFolder: ...;findFile: ...;findSubFolder: ...;getFiles: ...;getSubFolders: ...;open: ...;getItemCount: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;id: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFile:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } | {extension: ...;source: ...;content: ...;setAlias:this;setSource:this;setContent:this;id: ...;open: ...;read: ...;isFile:this is (...);getIconUrl: ...;getType: ...;download: ...;isDownloadable: ...;toJSON: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } | { readonly linkedPath?: string | undefined; readonly setLinkedFile: (file: VirtualFile | null) => VirtualFileLink; readonly setLinkedPath: (path: string) => VirtualFileLink; ... 44 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; }; };initiated:boolean;loadedDefaultData:boolean;systemManager: {systemName:string;tagLine:string;skin: {systemIcon:string;appIcons: ... | ...;appNames: ... | ...;wallpapers: readonly ...[];defaultWallpaper:string;fileIcons: {generic: ...;info?: ...;text?: ...;code?: ...;external?: ...;video?: ...;audio?: ...; };folderIcons: {generic: ...;images?: ...;text?: ...;link?: ...;video?: ...;audio?: ...; };loadStyleSheet: ... | ...;defaultTheme: ... | ...; };appsConfig: {apps: readonly ...[];installedApps: readonly ...[];getAppById: ... | ...;getAppByFileExtension: ... | ...;getAppByRole: ... | ...;getAppsByCategory: ...[]; };desktopConfig: {defaultIconSize: ... | ... | ...;defaultIconDirection: ... | ...; };miscConfig: {doubleClickDelay:number; };modalsConfig: {defaultDialogSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; };defaultFileSelectorSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };taskbarConfig: {height:number; };trackingConfig: {enabled:boolean;googleAnalyticsMeasurementId:string; };windowsConfig: {screenMargin:number;titleSeparator:string;minScreenSize: {x: ...;y: ...;clone: ...;magnitude: ...;setX:this;setY:this;set:this;round:this;normalize: ...;scale: ...;getDistanceSquared: ...;getDistance: ...;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };virtualDriveConfig: {saveData: ... | ...;defaultData: {includePicturesFolder?: ...;includeDocumentsFolder?: ...;includeDesktopFolder?: ...;includeSourceTree?: ...;includeAppsFolder?: ...;loadData?: ...; }; };storage: {enableCompression:boolean;prefix: ... | ...;store:void;load: ... | ...;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result: ...;size: ...; };decode:string;setPrefix:this; };getUptime:string; };storage: {enableCompression:boolean;prefix:string|undefined;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result:string;size:number; };decode:string;setPrefix:this;virtualDriveConfig: {saveData: ... | ...;defaultData: {includePicturesFolder?: ...;includeDocumentsFolder?: ...;includeDesktopFolder?: ...;includeSourceTree?: ...;includeAppsFolder?: ...;loadData?: ...; }; };load:string|null;store:void;synchronize:void; };loadDefaultData:void;loadData:void;saveData:void;init:VirtualRoot;addShortcut:VirtualRoot;reset:void;path:string;displayPath:string;toJSON:VirtualRootJson|null;toString:string|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open: ... | ...;read:Promise<...>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;on:Listener<VirtualRootEvents&Record<..., ...>,K>;once:Listener<VirtualRootEvents&Record<..., ...>,K>;onAsync:Listener<VirtualRootEvents&Record<..., ...>,K>;off:void;emit:void; } |null|undefined;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;once:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;onAsync:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;off:void;emit:void; })[];type:number|undefined;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;open:object|null|undefined;delete:void;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];getItemCount:number;isFolder:this is VirtualFolder<VirtualBaseEvents>;getIconUrl:string;toJSON:VirtualFolderJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....;files: readonly ...[];type: ... | ...;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ... | ... | ...;navigateToFolder: ... | ...;navigateToFile: ... | ...;delete:void;isFolder:this is VirtualFolder<(...)>;linkedPath?: ... | ...;setLinkedFolder:VirtualFolderLink;setLinkedPath:VirtualFolderLink;isValid:boolean;getIconUrl:string;toJSON: ... | ...;setAlias:VirtualFolderLink;createFile:VirtualFolderLink;createFiles:VirtualFolderLink;createFolder:VirtualFolderLink;createFolders:VirtualFolderLink;hasFile:boolean;hasFolder:boolean;findFile: ... | ... | ...;findSubFolder: ... | ... | ...;getFiles: ...[];getSubFolders: ...[];open: ... | ... | ...;getItemCount:number;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; })[];files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;isFile:this is VirtualFile;getType:string;download:void;isDownloadable:boolean;linkedPath?: ... | ...;setLinkedFile:VirtualFileLink;setLinkedPath:VirtualFileLink;isValid:boolean;toJSON: ... | ...;setAlias:VirtualFileLink;setSource:VirtualFileLink;setContent:VirtualFileLink;id:string;open: ... | ...;read:Promise<...>;getIconUrl:string;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; })[];type:number|undefined;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;open:object|null|undefined;delete:void;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];getItemCount:number;isFolder:this is VirtualFolder<VirtualBaseEvents>;getIconUrl:string;shortcuts: {[key:string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: readonly ...[];files: readonly ...[];type: ... | ...;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate: ... | ... | ...;navigateToFolder: ... | ...;navigateToFile: ... | ...;delete:void;isFolder:this is VirtualFolder<(...)>;linkedPath?: ... | ...;setLinkedFolder:VirtualFolderLink;setLinkedPath:VirtualFolderLink;isValid:boolean;getIconUrl:string;toJSON: ... | ...;setAlias:VirtualFolderLink;createFile:VirtualFolderLink;createFiles:VirtualFolderLink;createFolder:VirtualFolderLink;createFolders:VirtualFolderLink;hasFile:boolean;hasFolder:boolean;findFile: ... | ... | ...;findSubFolder: ... | ... | ...;getFiles: ...[];getSubFolders: ...[];open: ... | ... | ...;getItemCount:number;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } | { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;isFile:this is VirtualFile;getType:string;download:void;isDownloadable:boolean;linkedPath?: ... | ...;setLinkedFile:VirtualFileLink;setLinkedPath:VirtualFileLink;isValid:boolean;toJSON: ... | ...;setAlias:VirtualFileLink;setSource:VirtualFileLink;setContent:VirtualFileLink;id:string;open: ... | ...;read:Promise<...>;getIconUrl:string;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; }; };initiated:boolean;loadedDefaultData:boolean;systemManager: {systemName:string;tagLine:string;skin: {systemIcon:string;appIcons: {[key: ...]: ...; } |undefined;appNames: {[key: ...]: ...; } |undefined;wallpapers: readonlystring[];defaultWallpaper:string;fileIcons: {generic:string;info?: ... | ...;text?: ... | ...;code?: ... | ...;external?: ... | ...;video?: ... | ...;audio?: ... | ...; };folderIcons: {generic:string;images?: ... | ...;text?: ... | ...;link?: ... | ...;video?: ... | ...;audio?: ... | ...; };loadStyleSheet: () => ... |undefined;defaultTheme:Theme|undefined; };appsConfig: {apps: readonly {name: ...;id: ...;windowContent: ...;windowOptions?: ...;description: ...;iconUrl: ...;role: ...;associatedExtensions: ...;pinnedByDefault: ...;launchAtStartup: ...;category: ...;metadata: ...;showDesktopIcon: ...;isActive: ...;isPinned?: ...;isInstalled: ...;WindowContent: ...;setName:this;setDescription:this;setIconUrl:this;setRole:this;setAssociatedExtensions:this;setPinnedByDefault:this;setLaunchAtStartup:this;setInstalled:this;setCategory:this;setMetadata:this;setShowDesktopIcon:this;setWindowOptions:this; }[];installedApps: readonly {name: ...;id: ...;windowContent: ...;windowOptions?: ...;description: ...;iconUrl: ...;role: ...;associatedExtensions: ...;pinnedByDefault: ...;launchAtStartup: ...;category: ...;metadata: ...;showDesktopIcon: ...;isActive: ...;isPinned?: ...;isInstalled: ...;WindowContent: ...;setName:this;setDescription:this;setIconUrl:this;setRole:this;setAssociatedExtensions:this;setPinnedByDefault:this;setLaunchAtStartup:this;setInstalled:this;setCategory:this;setMetadata:this;setShowDesktopIcon:this;setWindowOptions:this; }[];getAppById:App<...> |null;getAppByFileExtension:App<...> |null;getAppByRole:App<...> |null;getAppsByCategory:App<...>[]; };desktopConfig: {defaultIconSize:0|1|2;defaultIconDirection:0|1; };miscConfig: {doubleClickDelay:number; };modalsConfig: {defaultDialogSize: {x:number;y:number;clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; };magnitude:number;setX:this;setY:this;set:this;round:this;normalize:Vector2;scale:Vector2;getDistanceSquared:number;getDistance:number;add:this;subtract:this;multiply:this;divide:this;lerp:this; };defaultFileSelectorSize: {x:number;y:number;clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; };magnitude:number;setX:this;setY:this;set:this;round:this;normalize:Vector2;scale:Vector2;getDistanceSquared:number;getDistance:number;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };taskbarConfig: {height:number; };trackingConfig: {enabled:boolean;googleAnalyticsMeasurementId:string; };windowsConfig: {screenMargin:number;titleSeparator:string;minScreenSize: {x:number;y:number;clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; };magnitude:number;setX:this;setY:this;set:this;round:this;normalize:Vector2;scale:Vector2;getDistanceSquared:number;getDistance:number;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };virtualDriveConfig: {saveData:false| {enableCompression: ...;prefix?: ...;migrations?: ...; };defaultData: {includePicturesFolder?: ... | ... | ...;includeDocumentsFolder?: ... | ... | ...;includeDesktopFolder?: ... | ... | ...;includeSourceTree?: ... | ... | ...;includeAppsFolder?: ... | ... | ...;loadData?: ... | ...; }; };storage: {enableCompression:boolean;prefix:string|undefined;store:void;load:string|null;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result:string;size:number; };decode:string;setPrefix:this; };getUptime:string; };storage: {enableCompression:boolean;prefix:string|undefined;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result:string;size:number; };decode:string;setPrefix:this;virtualDriveConfig: {saveData:false| {enableCompression: ...;prefix?: ...;migrations?: ...; };defaultData: {includePicturesFolder?: ... | ... | ...;includeDocumentsFolder?: ... | ... | ...;includeDesktopFolder?: ... | ... | ...;includeSourceTree?: ... | ... | ...;includeAppsFolder?: ... | ... | ...;loadData?: ... | ...; }; };load:string|null;store:void;synchronize:void; };loadDefaultData:void;loadData:void;saveData:void;init:VirtualRoot;addShortcut:VirtualRoot;reset:void;path:string;displayPath:string;toJSON:VirtualRootJson|null;toString:string|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;on:Listener<VirtualRootEvents&Record<keyof ..., ...[]>,K>;once:Listener<VirtualRootEvents&Record<keyof ..., ...[]>,K>;onAsync:Listener<VirtualRootEvents&Record<keyof ..., ...[]>,K>;off:void;emit:void; } |null|undefined;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;once:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;onAsync:Listener<VirtualFileEvents&Record<keyofVirtualFileEvents,unknown[]>,K>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....;files: readonly ({extension: ...;source: ...;content: ...;setAlias:this;setSource:this;setContent:this;id: ...;open: ...;read: ...;isFile:this is (...);getIconUrl: ...;getType: ...;download: ...;isDownloadable: ...;toJSON: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } | {extension: ...;source: ...;content: ...;isFile:this is (...);getType: ...;download: ...;isDownloadable: ...;linkedPath?: ...;setLinkedFile: ...;setLinkedPath: ...;isValid: ...;toJSON: ...;setAlias: ...;setSource: ...;setContent: ...;id: ...;open: ...;read: ...;getIconUrl: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; })[];type:number|undefined;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;delete:void;isFolder:this is VirtualFolder<VirtualBaseEvents>;linkedPath?:string;setLinkedFolder:VirtualFolderLink;setLinkedPath:VirtualFolderLink;isValid:boolean;getIconUrl:string;toJSON:VirtualFolderLinkJson|null;setAlias:VirtualFolderLink;createFile:VirtualFolderLink;createFiles:VirtualFolderLink;createFolder:VirtualFolderLink;createFolders:VirtualFolderLink;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];open:object|null|undefined;getItemCount:number;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open: ... | ...;read:Promise<...>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;toString:string|null;on:Listener<VirtualBaseEvents&Record<..., ...>,K>;once:Listener<VirtualBaseEvents&Record<..., ...>,K>;onAsync:Listener<VirtualBaseEvents&Record<..., ...>,K>;off:void;emit:void; })[];files: readonly ({extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<..., ...>,K>;once:Listener<VirtualFileEvents&Record<..., ...>,K>;onAsync:Listener<VirtualFileEvents&Record<..., ...>,K>;off:void;emit:void; } | {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;isFile:this is VirtualFile;getType:string;download:void;isDownloadable:boolean;linkedPath?:string;setLinkedFile:VirtualFileLink;setLinkedPath:VirtualFileLink;isValid:boolean;toJSON:VirtualFileLinkJson|null;setAlias:VirtualFileLink;setSource:VirtualFileLink;setContent:VirtualFileLink;id:string;open:object|null;read:Promise<string|null|undefined>;getIconUrl:string;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open: ... | ...;read:Promise<...>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<..., ...>,K>;once:Listener<VirtualFileEvents&Record<..., ...>,K>;onAsync:Listener<VirtualFileEvents&Record<..., ...>,K>;off:void;emit:void; })[];type:number|undefined;setAlias:this;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;addFile:this;createFile:this;createFiles:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolder:this;createFolders:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;open:object|null|undefined;delete:void;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];getItemCount:number;isFolder:this is VirtualFolder<VirtualBaseEvents>;getIconUrl:string;shortcuts: {[key:string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | {subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[];files: readonly ({extension: ...;source: ...;content: ...;setAlias:this;setSource:this;setContent:this;id: ...;open: ...;read: ...;isFile:this is (...);getIconUrl: ...;getType: ...;download: ...;isDownloadable: ...;toJSON: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; } | {extension: ...;source: ...;content: ...;isFile:this is (...);getType: ...;download: ...;isDownloadable: ...;linkedPath?: ...;setLinkedFile: ...;setLinkedPath: ...;isValid: ...;toJSON: ...;setAlias: ...;setSource: ...;setContent: ...;id: ...;open: ...;read: ...;getIconUrl: ...;name: ...;alias: ...;parent: ...;isProtected: ...;iconUrl: ...;linkedFile: ...;linkedFolder: ...;editedByUser: ...;isRoot: ...;root: ...;isDeleted: ...;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete: ...;confirmChanges: ...;path: ...;displayPath: ...;absolutePath: ...;canBeEdited: ...;getRoot: ...;isFolder:this is (...);toString: ...;on: ...;once: ...;onAsync: ...;off: ...;emit: ...; })[];type:number|undefined;addFile:this;createFileLink:this;createFileLinks:this;addFolder:this;createFolderLink:this;createFolderLinks:this;remove:this;navigate:VirtualFolder<VirtualBaseEvents> |VirtualFile|null;navigateToFolder:VirtualFolder<VirtualBaseEvents> |null;navigateToFile:VirtualFile|null;delete:void;isFolder:this is VirtualFolder<VirtualBaseEvents>;linkedPath?:string;setLinkedFolder:VirtualFolderLink;setLinkedPath:VirtualFolderLink;isValid:boolean;getIconUrl:string;toJSON:VirtualFolderLinkJson|null;setAlias:VirtualFolderLink;createFile:VirtualFolderLink;createFiles:VirtualFolderLink;createFolder:VirtualFolderLink;createFolders:VirtualFolderLink;hasFile:boolean;hasFolder:boolean;findFile:VirtualFile|VirtualFileLink|null;findSubFolder:VirtualFolder<VirtualBaseEvents> |VirtualFolderLink|null;getFiles:VirtualFile[];getSubFolders:VirtualFolder<VirtualBaseEvents>[];open:object|null|undefined;getItemCount:number;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open: ... | ...;read:Promise<...>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;toString:string|null;on:Listener<VirtualBaseEvents&Record<..., ...>,K>;once:Listener<VirtualBaseEvents&Record<..., ...>,K>;onAsync:Listener<VirtualBaseEvents&Record<..., ...>,K>;off:void;emit:void; } | {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<..., ...>,K>;once:Listener<VirtualFileEvents&Record<..., ...>,K>;onAsync:Listener<VirtualFileEvents&Record<..., ...>,K>;off:void;emit:void; } | {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;isFile:this is VirtualFile;getType:string;download:void;isDownloadable:boolean;linkedPath?:string;setLinkedFile:VirtualFileLink;setLinkedPath:VirtualFileLink;isValid:boolean;toJSON:VirtualFileLinkJson|null;setAlias:VirtualFileLink;setSource:VirtualFileLink;setContent:VirtualFileLink;id:string;open:object|null;read:Promise<string|null|undefined>;getIconUrl:string;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open: ... | ...;read:Promise<...>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON: ... | ...;name:string;alias: ... | ... | ...;parent: ... | ... | ...;isProtected: ... | ... | ... | ...;iconUrl: ... | ... | ...;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: ... | ... | ...;editedByUser: ... | ... | ... | ...;isRoot: ... | ... | ... | ...;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<(...)>;toString: ... | ...;on:Listener<..., ...>;once:Listener<..., ...>;onAsync:Listener<..., ...>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<..., ...>,K>;once:Listener<VirtualFileEvents&Record<..., ...>,K>;onAsync:Listener<VirtualFileEvents&Record<..., ...>,K>;off:void;emit:void; }; };initiated:boolean;loadedDefaultData:boolean;systemManager: {systemName:string;tagLine:string;skin: {systemIcon:string;appIcons: {[key:string]:string; } |undefined;appNames: {[key:string]:string; } |undefined;wallpapers: readonlystring[];defaultWallpaper:string;fileIcons: {generic:string;info?:string;text?:string;code?:string;external?:string;video?:string;audio?:string; };folderIcons: {generic:string;images?:string;text?:string;link?:string;video?:string;audio?:string; };loadStyleSheet: () =>void|undefined;defaultTheme:Theme|undefined; };appsConfig: {apps: readonly {name:string;id:string;windowContent:FC<...> |null;windowOptions?: {[key: ...]: ...;fullscreen?: ...;setTitle?: ...;setIconUrl?: ...;close?: ...;focus?: ...;active?: ...;minimized?: ...;toggleMinimized?: ...;index?: ...;standalone?: ...;id?: ...;app?: ...;size?: ...;position?: ...;options?: ...;isFocused?: ...;lastInteraction?: ...; };description:string|null;iconUrl:string|null;role:string|null;associatedExtensions: readonlystring[];pinnedByDefault:boolean;launchAtStartup:boolean;category:"Business"|"Developer tools"|"Education"|"Entertainment"|"Food & dining"|"Health & fitness"|"Kids & family"|"Lifestyle"|"Media"|"Medical"|"Multimedia design"|"Music"|"Navigation & maps"|"News & weather"|"Personal finance"|"Personalization"|"Photo & video"|"Productivity"|"Security"|"Shopping"|"Social"|"Sports"|"Travel"|"Utilities & tools"|null;metadata: {name: ...;version: ...;author: ...; } |null;showDesktopIcon:boolean;isActive:boolean;isPinned?:boolean;isInstalled:boolean;WindowContent:Element|null;setName:this;setDescription:this;setIconUrl:this;setRole:this;setAssociatedExtensions:this;setPinnedByDefault:this;setLaunchAtStartup:this;setInstalled:this;setCategory:this;setMetadata:this;setShowDesktopIcon:this;setWindowOptions:this; }[];installedApps: readonly {name:string;id:string;windowContent:FC<...> |null;windowOptions?: {[key: ...]: ...;fullscreen?: ...;setTitle?: ...;setIconUrl?: ...;close?: ...;focus?: ...;active?: ...;minimized?: ...;toggleMinimized?: ...;index?: ...;standalone?: ...;id?: ...;app?: ...;size?: ...;position?: ...;options?: ...;isFocused?: ...;lastInteraction?: ...; };description:string|null;iconUrl:string|null;role:string|null;associatedExtensions: readonlystring[];pinnedByDefault:boolean;launchAtStartup:boolean;category:"Business"|"Developer tools"|"Education"|"Entertainment"|"Food & dining"|"Health & fitness"|"Kids & family"|"Lifestyle"|"Media"|"Medical"|"Multimedia design"|"Music"|"Navigation & maps"|"News & weather"|"Personal finance"|"Personalization"|"Photo & video"|"Productivity"|"Security"|"Shopping"|"Social"|"Sports"|"Travel"|"Utilities & tools"|null;metadata: {name: ...;version: ...;author: ...; } |null;showDesktopIcon:boolean;isActive:boolean;isPinned?:boolean;isInstalled:boolean;WindowContent:Element|null;setName:this;setDescription:this;setIconUrl:this;setRole:this;setAssociatedExtensions:this;setPinnedByDefault:this;setLaunchAtStartup:this;setInstalled:this;setCategory:this;setMetadata:this;setShowDesktopIcon:this;setWindowOptions:this; }[];getAppById:App<WindowProps> |null;getAppByFileExtension:App<WindowProps> |null;getAppByRole:App<WindowProps> |null;getAppsByCategory:App<WindowProps>[]; };desktopConfig: {defaultIconSize:0|1|2;defaultIconDirection:0|1; };miscConfig: {doubleClickDelay:number; };modalsConfig: {defaultDialogSize: {x:number;y:number;clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; };magnitude:number;setX:this;setY:this;set:this;round:this;normalize:Vector2;scale:Vector2;getDistanceSquared:number;getDistance:number;add:this;subtract:this;multiply:this;divide:this;lerp:this; };defaultFileSelectorSize: {x:number;y:number;clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; };magnitude:number;setX:this;setY:this;set:this;round:this;normalize:Vector2;scale:Vector2;getDistanceSquared:number;getDistance:number;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };taskbarConfig: {height:number; };trackingConfig: {enabled:boolean;googleAnalyticsMeasurementId:string; };windowsConfig: {screenMargin:number;titleSeparator:string;minScreenSize: {x:number;y:number;clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; };magnitude:number;setX:this;setY:this;set:this;round:this;normalize:Vector2;scale:Vector2;getDistanceSquared:number;getDistance:number;add:this;subtract:this;multiply:this;divide:this;lerp:this; }; };virtualDriveConfig: {saveData:false| {enableCompression:boolean;prefix?:string;migrations?: readonly ...[]; };defaultData: {includePicturesFolder?:boolean;includeDocumentsFolder?:boolean;includeDesktopFolder?:boolean;includeSourceTree?:boolean;includeAppsFolder?:boolean;loadData?: (virtualRoot:VirtualRoot) =>void; }; };storage: {enableCompression:boolean;prefix:string|undefined;store:void;load:string|null;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result:string;size:number; };decode:string;setPrefix:this; };getUptime:string; };storage: {enableCompression:boolean;prefix:string|undefined;rename:this;remove:this;clear:this;getItemByteSize:number;getEncodedByteSize:number;encode: {result:string;size:number; };decode:string;setPrefix:this;virtualDriveConfig: {saveData:false| {enableCompression:boolean;prefix?:string;migrations?: readonly ...[]; };defaultData: {includePicturesFolder?:boolean;includeDocumentsFolder?:boolean;includeDesktopFolder?:boolean;includeSourceTree?:boolean;includeAppsFolder?:boolean;loadData?: (virtualRoot:VirtualRoot) =>void; }; };load:string|null;store:void;synchronize:void; };loadDefaultData:void;loadData:void;saveData:void;init:VirtualRoot;addShortcut:VirtualRoot;reset:void;path:string;displayPath:string;toJSON:VirtualRootJson|null;toString:string|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: {extension:OptionalStringProperty;source:OptionalStringProperty;content:OptionalStringProperty;setAlias:this;setSource:this;setContent:this;id:string;open:object|null;read:Promise<OptionalStringProperty>;isFile:this is VirtualFile;getIconUrl:string;getType:string;download:void;isDownloadable:boolean;toJSON:VirtualFileJson|null;name:string;alias:string|null|undefined;parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;isProtected:boolean|null|undefined;iconUrl:string|null|undefined;linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;setName:this;setParent:this;setProtected:this;setIconUrl:this;delete:void;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFolder:this is VirtualFolder<VirtualBaseEvents>;toString:string|null;on:Listener<VirtualFileEvents&Record<keyof ..., ...[]>,K>;once:Listener<VirtualFileEvents&Record<keyof ..., ...[]>,K>;onAsync:Listener<VirtualFileEvents&Record<keyof ..., ...[]>,K>;off:void;emit:void; } |null|undefined;linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... |null|undefined;editedByUser:boolean|null|undefined;isRoot:boolean|null|undefined;root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;on:Listener<VirtualRootEvents&Record<keyofVirtualRootEvents,unknown[]>,K>;once:Listener<VirtualRootEvents&Record<keyofVirtualRootEvents,unknown[]>,K>;onAsync:Listener<VirtualRootEvents&Record<keyofVirtualRootEvents,unknown[]>,K>;off:void;emit:void; } |null|undefined;isDeleted:boolean;id:string;setName:this;setParent:this;setProtected:this;setIconUrl:this;getType:string;confirmChanges:void;path:string;displayPath:string;absolutePath:string;canBeEdited:boolean;getRoot:VirtualRoot;isFile:this is VirtualFile;toString:string|null;on:Listener<VirtualBaseEvents&Record<"update",unknown[]>,K>;once:Listener<VirtualBaseEvents&Record<"update",unknown[]>,K>;onAsync:Listener<VirtualBaseEvents&Record<"update",unknown[]>,K>;off:void;emit:void; };prompt:string;stream: {enabled:boolean;start:this;stop:this;signal:this;write:this;pipe:Stream<string>;wait:Promise<void>;on:Listener<StreamEvents<string>,K>;once:Listener<StreamEvents<string>,K>;onAsync:Listener<StreamEvents<string>,K>;off:void;emit:void; } |null;ttyBuffer:string|null;isUsingAltScreen:boolean;env: {[key:string]:string; }; }]
Source: shell.ts
A hook that initializes and manages a Shell instance within a React component. It gathers required system contexts and returns a reactive snapshot of the shell's state.
Parameters
config
Pick<ShellConfig, "app" | "path" | "input" | "exit" | "sizeRef">
Configuration subset required to instantiate the shell.
Returns
[Shell, { history: readonly { text?: string; isCommand: boolean; value?: string; clear?: boolean; }[]; line: string; historyOffset: number; workingDirectory: { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....; files: readonly ({ extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: ...; files: ...; type: ...; setAlias: this; hasFile: ...; hasFolder: ...; findFile: ...; findSubFolder: ...; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ...; navigateToFolder: ...; navigateToFile: ...; open: ...; delete: ...; getFiles: ...; getSubFolders: ...; getItemCount: ...; isFolder: this is (...); getIconUrl: ...; shortcuts: ...; initiated: ...; loadedDefaultData: ...; systemManager: ...; storage: ...; loadDefaultData: ...; loadData: ...; saveData: ...; init: ...; addShortcut: ...; reset: ...; path: ...; displayPath: ...; toJSON: ...; toString: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; id: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: ...; confirmChanges: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFile: this is (...); on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | null | undefined; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<... & ..., K>; once: Listener<... & ..., K>; onAsync: Listener<... & ..., K>; off: void; emit: void; } | { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; isFile: this is VirtualFile; getType: string; download: void; isDownloadable: boolean; linkedPath?: string; setLinkedFile: VirtualFileLink; setLinkedPath: VirtualFileLink; isValid: boolean; toJSON: VirtualFileLinkJson | null; setAlias: VirtualFileLink; setSource: VirtualFileLink; setContent: VirtualFileLink; id: string; open: object | null; read: Promise<... | ... | ...>; getIconUrl: string; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: ...; source: ...; content: ...; setAlias: this; setSource: this; setContent: this; id: ...; open: ...; read: ...; isFile: this is (...); getIconUrl: ...; getType: ...; download: ...; isDownloadable: ...; toJSON: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: ...; files: ...; type: ...; setAlias: this; hasFile: ...; hasFolder: ...; findFile: ...; findSubFolder: ...; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ...; navigateToFolder: ...; navigateToFile: ...; open: ...; delete: ...; getFiles: ...; getSubFolders: ...; getItemCount: ...; isFolder: this is (...); getIconUrl: ...; shortcuts: ...; initiated: ...; loadedDefaultData: ...; systemManager: ...; storage: ...; loadDefaultData: ...; loadData: ...; saveData: ...; init: ...; addShortcut: ...; reset: ...; path: ...; displayPath: ...; toJSON: ...; toString: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; id: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: ...; confirmChanges: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFile: this is (...); on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | null | undefined; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<... & ..., K>; once: Listener<... & ..., K>; onAsync: Listener<... & ..., K>; off: void; emit: void; })[]; type: number | undefined; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; delete: void; isFolder: this is VirtualFolder<VirtualBaseEvents>; linkedPath?: string; setLinkedFolder: VirtualFolderLink; setLinkedPath: VirtualFolderLink; isValid: boolean; getIconUrl: string; toJSON: VirtualFolderLinkJson | null; setAlias: VirtualFolderLink; createFile: VirtualFolderLink; createFiles: VirtualFolderLink; createFolder: VirtualFolderLink; createFolders: VirtualFolderLink; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; open: object | null | undefined; getItemCount: number; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....; files: readonly ...[]; type: ... | ...; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: ... | ... | ...; findSubFolder: ... | ... | ...; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ... | ... | ...; navigateToFolder: ... | ...; navigateToFile: ... | ...; open: ... | ... | ...; delete: void; getFiles: ...[]; getSubFolders: ...[]; getItemCount: number; isFolder: this is VirtualFolder<(...)>; getIconUrl: string; shortcuts: {[key: ...]: ...; }; initiated: boolean; loadedDefaultData: boolean; systemManager: { systemName: ...; tagLine: ...; skin: ...; appsConfig: ...; desktopConfig: ...; miscConfig: ...; modalsConfig: ...; taskbarConfig: ...; trackingConfig: ...; windowsConfig: ...; virtualDriveConfig: ...; storage: ...; getUptime: ...; }; storage: { enableCompression: ...; prefix: ...; rename: this; remove: this; clear: this; getItemByteSize: ...; getEncodedByteSize: ...; encode: ...; decode: ...; setPrefix: this; virtualDriveConfig: ...; load: ...; store: ...; synchronize: ...; }; loadDefaultData: void; loadData: void; saveData: void; init: VirtualRoot; addShortcut: VirtualRoot; reset: void; path: string; displayPath: string; toJSON: ... | ...; toString: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<..., ...>, K>; once: Listener<VirtualFileEvents & Record<..., ...>, K>; onAsync: Listener<VirtualFileEvents & Record<..., ...>, K>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....; files: readonly ({ extension: ...; source: ...; content: ...; setAlias: this; setSource: this; setContent: this; id: ...; open: ...; read: ...; isFile: this is (...); getIconUrl: ...; getType: ...; download: ...; isDownloadable: ...; toJSON: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | { extension: ...; source: ...; content: ...; isFile: this is (...); getType: ...; download: ...; isDownloadable: ...; linkedPath?: ...; setLinkedFile: ...; setLinkedPath: ...; isValid: ...; toJSON: ...; setAlias: ...; setSource: ...; setContent: ...; id: ...; open: ...; read: ...; getIconUrl: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; })[]; type: number | undefined; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; open: object | null | undefined; delete: void; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; getItemCount: number; isFolder: this is VirtualFolder<VirtualBaseEvents>; getIconUrl: string; shortcuts: {[key: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; } | { extension: ...; source: ...; content: ...; setAlias: this; setSource: this; setContent: this; id: ...; open: ...; read: ...; isFile: this is (...); getIconUrl: ...; getType: ...; download: ...; isDownloadable: ...; toJSON: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | { extension: ...; source: ...; content: ...; isFile: this is (...); getType: ...; download: ...; isDownloadable: ...; linkedPath?: ...; setLinkedFile: ...; setLinkedPath: ...; isValid: ...; toJSON: ...; setAlias: ...; setSource: ...; setContent: ...; id: ...; open: ...; read: ...; getIconUrl: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; }; }; initiated: boolean; loadedDefaultData: boolean; systemManager: { systemName: string; tagLine: string; skin: { systemIcon: string; appIcons: ... | ...; appNames: ... | ...; wallpapers: readonly ...[]; defaultWallpaper: string; fileIcons: { generic: ...; info?: ...; text?: ...; code?: ...; external?: ...; video?: ...; audio?: ...; }; folderIcons: { generic: ...; images?: ...; text?: ...; link?: ...; video?: ...; audio?: ...; }; loadStyleSheet: ... | ...; defaultTheme: ... | ...; }; appsConfig: { apps: readonly ...[]; installedApps: readonly ...[]; getAppById: ... | ...; getAppByFileExtension: ... | ...; getAppByRole: ... | ...; getAppsByCategory: ...[]; }; desktopConfig: { defaultIconSize: ... | ... | ...; defaultIconDirection: ... | ...; }; miscConfig: { doubleClickDelay: number; }; modalsConfig: { defaultDialogSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; defaultFileSelectorSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; taskbarConfig: { height: number; }; trackingConfig: { enabled: boolean; googleAnalyticsMeasurementId: string; }; windowsConfig: { screenMargin: number; titleSeparator: string; minScreenSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; virtualDriveConfig: { saveData: ... | ...; defaultData: { includePicturesFolder?: ...; includeDocumentsFolder?: ...; includeDesktopFolder?: ...; includeSourceTree?: ...; includeAppsFolder?: ...; loadData?: ...; }; }; storage: { enableCompression: boolean; prefix: ... | ...; store: void; load: ... | ...; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: ...; size: ...; }; decode: string; setPrefix: this; }; getUptime: string; }; storage: { enableCompression: boolean; prefix: string | undefined; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: string; size: number; }; decode: string; setPrefix: this; virtualDriveConfig: { saveData: ... | ...; defaultData: { includePicturesFolder?: ...; includeDocumentsFolder?: ...; includeDesktopFolder?: ...; includeSourceTree?: ...; includeAppsFolder?: ...; loadData?: ...; }; }; load: string | null; store: void; synchronize: void; }; loadDefaultData: void; loadData: void; saveData: void; init: VirtualRoot; addShortcut: VirtualRoot; reset: void; path: string; displayPath: string; toJSON: VirtualRootJson | null; toString: string | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: ... | ...; read: Promise<...>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; on: Listener<VirtualRootEvents & Record<..., ...>, K>; once: Listener<VirtualRootEvents & Record<..., ...>, K>; onAsync: Listener<VirtualRootEvents & Record<..., ...>, K>; off: void; emit: void; } | null | undefined; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; toString: string | null; on: Listener<VirtualBaseEvents & Record<"update", unknown[]>, K>; once: Listener<VirtualBaseEvents & Record<"update", unknown[]>, K>; onAsync: Listener<VirtualBaseEvents & Record<"update", unknown[]>, K>; off: void; emit: void; })[]; files: readonly ({ extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: ...; files: ...; type: ...; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ...; navigateToFolder: ...; navigateToFile: ...; delete: ...; isFolder: this is (...); linkedPath?: ...; setLinkedFolder: ...; setLinkedPath: ...; isValid: ...; getIconUrl: ...; toJSON: ...; setAlias: ...; createFile: ...; createFiles: ...; createFolder: ...; createFolders: ...; hasFile: ...; hasFolder: ...; findFile: ...; findSubFolder: ...; getFiles: ...; getSubFolders: ...; open: ...; getItemCount: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; id: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFile: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; })[]; files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { ...; })[]; type: number | undefined; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; open: object | null | undefined; delete: void; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; getItemCount: number; isFolder: this is VirtualFolder<VirtualBaseEvents>; getIconUrl: string; shortcuts: {[key: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: ...; files: ...; type: ...; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ...; navigateToFolder: ...; navigateToFile: ...; delete: ...; isFolder: this is (...); linkedPath?: ...; setLinkedFolder: ...; setLinkedPath: ...; isValid: ...; getIconUrl: ...; toJSON: ...; setAlias: ...; createFile: ...; createFiles: ...; createFolder: ...; createFolders: ...; hasFile: ...; hasFolder: ...; findFile: ...; findSubFolder: ...; getFiles: ...; getSubFolders: ...; open: ...; getItemCount: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; id: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFile: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { extension: ...; source: ...; content: ...; isFile: this is (...); getType: ...; download: ...; isDownloadable: ...; linkedPath?: ...; setLinkedFile: ...; setLinkedPath: ...; isValid: ...; toJSON: ...; setAlias: ...; setSource: ...; setContent: ...; id: ...; open: ...; read: ...; getIconUrl: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; }; }; initiated: boolean; loadedDefaultData: boolean; systemManager: { systemName: string; tagLine: string; skin: { systemIcon: string; appIcons: ... | ...; appNames: ... | ...; wallpapers: readonly ...[]; defaultWallpaper: string; fileIcons: { generic: ...; info?: ...; text?: ...; code?: ...; external?: ...; video?: ...; audio?: ...; }; folderIcons: { generic: ...; images?: ...; text?: ...; link?: ...; video?: ...; audio?: ...; }; loadStyleSheet: ... | ...; defaultTheme: ... | ...; }; appsConfig: { apps: readonly ...[]; installedApps: readonly ...[]; getAppById: ... | ...; getAppByFileExtension: ... | ...; getAppByRole: ... | ...; getAppsByCategory: ...[]; }; desktopConfig: { defaultIconSize: ... | ... | ...; defaultIconDirection: ... | ...; }; miscConfig: { doubleClickDelay: number; }; modalsConfig: { defaultDialogSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; defaultFileSelectorSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; taskbarConfig: { height: number; }; trackingConfig: { enabled: boolean; googleAnalyticsMeasurementId: string; }; windowsConfig: { screenMargin: number; titleSeparator: string; minScreenSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; virtualDriveConfig: { saveData: ... | ...; defaultData: { includePicturesFolder?: ...; includeDocumentsFolder?: ...; includeDesktopFolder?: ...; includeSourceTree?: ...; includeAppsFolder?: ...; loadData?: ...; }; }; storage: { enableCompression: boolean; prefix: ... | ...; store: void; load: ... | ...; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: ...; size: ...; }; decode: string; setPrefix: this; }; getUptime: string; }; storage: { enableCompression: boolean; prefix: string | undefined; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: string; size: number; }; decode: string; setPrefix: this; virtualDriveConfig: { saveData: ... | ...; defaultData: { includePicturesFolder?: ...; includeDocumentsFolder?: ...; includeDesktopFolder?: ...; includeSourceTree?: ...; includeAppsFolder?: ...; loadData?: ...; }; }; load: string | null; store: void; synchronize: void; }; loadDefaultData: void; loadData: void; saveData: void; init: VirtualRoot; addShortcut: VirtualRoot; reset: void; path: string; displayPath: string; toJSON: VirtualRootJson | null; toString: string | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; on: Listener<VirtualRootEvents & Record<..., ...>, K>; once: Listener<VirtualRootEvents & Record<..., ...>, K>; onAsync: Listener<VirtualRootEvents & Record<..., ...>, K>; off: void; emit: void; } | null | undefined; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; once: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; onAsync: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; off: void; emit: void; } | { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; isFile: this is VirtualFile; getType: string; download: void; isDownloadable: boolean; linkedPath?: string; setLinkedFile: VirtualFileLink; setLinkedPath: VirtualFileLink; isValid: boolean; toJSON: VirtualFileLinkJson | null; setAlias: VirtualFileLink; setSource: VirtualFileLink; setContent: VirtualFileLink; id: string; open: object | null; read: Promise<string | null | undefined>; getIconUrl: string; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: readonly ...[]; files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { ...; })[]; type: ... | ...; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: ... | ... | ...; findSubFolder: ... | ... | ...; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ... | ... | ...; navigateToFolder: ... | ...; navigateToFile: ... | ...; open: ... | ... | ...; delete: void; getFiles: ...[]; getSubFolders: ...[]; getItemCount: number; isFolder: this is VirtualFolder<(...)>; getIconUrl: string; shortcuts: {[key: ...]: ...; }; initiated: boolean; loadedDefaultData: boolean; systemManager: { systemName: ...; tagLine: ...; skin: ...; appsConfig: ...; desktopConfig: ...; miscConfig: ...; modalsConfig: ...; taskbarConfig: ...; trackingConfig: ...; windowsConfig: ...; virtualDriveConfig: ...; storage: ...; getUptime: ...; }; storage: { enableCompression: ...; prefix: ...; rename: this; remove: this; clear: this; getItemByteSize: ...; getEncodedByteSize: ...; encode: ...; decode: ...; setPrefix: this; virtualDriveConfig: ...; load: ...; store: ...; synchronize: ...; }; loadDefaultData: void; loadData: void; saveData: void; init: VirtualRoot; addShortcut: VirtualRoot; reset: void; path: string; displayPath: string; toJSON: ... | ...; toString: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<..., ...>, K>; once: Listener<VirtualFileEvents & Record<..., ...>, K>; onAsync: Listener<VirtualFileEvents & Record<..., ...>, K>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: ...; files: ...; type: ...; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ...; navigateToFolder: ...; navigateToFile: ...; delete: ...; isFolder: this is (...); linkedPath?: ...; setLinkedFolder: ...; setLinkedPath: ...; isValid: ...; getIconUrl: ...; toJSON: ...; setAlias: ...; createFile: ...; createFiles: ...; createFolder: ...; createFolders: ...; hasFile: ...; hasFolder: ...; findFile: ...; findSubFolder: ...; getFiles: ...; getSubFolders: ...; open: ...; getItemCount: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; id: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFile: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; })[]; files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { ...; })[]; type: number | undefined; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; open: object | null | undefined; delete: void; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; getItemCount: number; isFolder: this is VirtualFolder<VirtualBaseEvents>; getIconUrl: string; shortcuts: {[key: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: ...; files: ...; type: ...; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ...; navigateToFolder: ...; navigateToFile: ...; delete: ...; isFolder: this is (...); linkedPath?: ...; setLinkedFolder: ...; setLinkedPath: ...; isValid: ...; getIconUrl: ...; toJSON: ...; setAlias: ...; createFile: ...; createFiles: ...; createFolder: ...; createFolders: ...; hasFile: ...; hasFolder: ...; findFile: ...; findSubFolder: ...; getFiles: ...; getSubFolders: ...; open: ...; getItemCount: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; id: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFile: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | { extension: ...; source: ...; content: ...; setAlias: this; setSource: this; setContent: this; id: ...; open: ...; read: ...; isFile: this is (...); getIconUrl: ...; getType: ...; download: ...; isDownloadable: ...; toJSON: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | { readonly linkedPath?: string | undefined; readonly setLinkedFile: (file: VirtualFile | null) => VirtualFileLink; readonly setLinkedPath: (path: string) => VirtualFileLink; ... 44 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; }; }; initiated: boolean; loadedDefaultData: boolean; systemManager: { systemName: string; tagLine: string; skin: { systemIcon: string; appIcons: ... | ...; appNames: ... | ...; wallpapers: readonly ...[]; defaultWallpaper: string; fileIcons: { generic: ...; info?: ...; text?: ...; code?: ...; external?: ...; video?: ...; audio?: ...; }; folderIcons: { generic: ...; images?: ...; text?: ...; link?: ...; video?: ...; audio?: ...; }; loadStyleSheet: ... | ...; defaultTheme: ... | ...; }; appsConfig: { apps: readonly ...[]; installedApps: readonly ...[]; getAppById: ... | ...; getAppByFileExtension: ... | ...; getAppByRole: ... | ...; getAppsByCategory: ...[]; }; desktopConfig: { defaultIconSize: ... | ... | ...; defaultIconDirection: ... | ...; }; miscConfig: { doubleClickDelay: number; }; modalsConfig: { defaultDialogSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; defaultFileSelectorSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; taskbarConfig: { height: number; }; trackingConfig: { enabled: boolean; googleAnalyticsMeasurementId: string; }; windowsConfig: { screenMargin: number; titleSeparator: string; minScreenSize: { x: ...; y: ...; clone: ...; magnitude: ...; setX: this; setY: this; set: this; round: this; normalize: ...; scale: ...; getDistanceSquared: ...; getDistance: ...; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; virtualDriveConfig: { saveData: ... | ...; defaultData: { includePicturesFolder?: ...; includeDocumentsFolder?: ...; includeDesktopFolder?: ...; includeSourceTree?: ...; includeAppsFolder?: ...; loadData?: ...; }; }; storage: { enableCompression: boolean; prefix: ... | ...; store: void; load: ... | ...; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: ...; size: ...; }; decode: string; setPrefix: this; }; getUptime: string; }; storage: { enableCompression: boolean; prefix: string | undefined; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: string; size: number; }; decode: string; setPrefix: this; virtualDriveConfig: { saveData: ... | ...; defaultData: { includePicturesFolder?: ...; includeDocumentsFolder?: ...; includeDesktopFolder?: ...; includeSourceTree?: ...; includeAppsFolder?: ...; loadData?: ...; }; }; load: string | null; store: void; synchronize: void; }; loadDefaultData: void; loadData: void; saveData: void; init: VirtualRoot; addShortcut: VirtualRoot; reset: void; path: string; displayPath: string; toJSON: VirtualRootJson | null; toString: string | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: ... | ...; read: Promise<...>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; on: Listener<VirtualRootEvents & Record<..., ...>, K>; once: Listener<VirtualRootEvents & Record<..., ...>, K>; onAsync: Listener<VirtualRootEvents & Record<..., ...>, K>; off: void; emit: void; } | null | undefined; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; once: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; onAsync: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; off: void; emit: void; })[]; type: number | undefined; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; open: object | null | undefined; delete: void; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; getItemCount: number; isFolder: this is VirtualFolder<VirtualBaseEvents>; getIconUrl: string; toJSON: VirtualFolderJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....; files: readonly ...[]; type: ... | ...; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ... | ... | ...; navigateToFolder: ... | ...; navigateToFile: ... | ...; delete: void; isFolder: this is VirtualFolder<(...)>; linkedPath?: ... | ...; setLinkedFolder: VirtualFolderLink; setLinkedPath: VirtualFolderLink; isValid: boolean; getIconUrl: string; toJSON: ... | ...; setAlias: VirtualFolderLink; createFile: VirtualFolderLink; createFiles: VirtualFolderLink; createFolder: VirtualFolderLink; createFolders: VirtualFolderLink; hasFile: boolean; hasFolder: boolean; findFile: ... | ... | ...; findSubFolder: ... | ... | ...; getFiles: ...[]; getSubFolders: ...[]; open: ... | ... | ...; getItemCount: number; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; })[]; files: readonly ({ readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; isFile: this is VirtualFile; getType: string; download: void; isDownloadable: boolean; linkedPath?: ... | ...; setLinkedFile: VirtualFileLink; setLinkedPath: VirtualFileLink; isValid: boolean; toJSON: ... | ...; setAlias: VirtualFileLink; setSource: VirtualFileLink; setContent: VirtualFileLink; id: string; open: ... | ...; read: Promise<...>; getIconUrl: string; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; })[]; type: number | undefined; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; open: object | null | undefined; delete: void; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; getItemCount: number; isFolder: this is VirtualFolder<VirtualBaseEvents>; getIconUrl: string; shortcuts: {[key: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: readonly ...[]; files: readonly ...[]; type: ... | ...; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: ... | ... | ...; navigateToFolder: ... | ...; navigateToFile: ... | ...; delete: void; isFolder: this is VirtualFolder<(...)>; linkedPath?: ... | ...; setLinkedFolder: VirtualFolderLink; setLinkedPath: VirtualFolderLink; isValid: boolean; getIconUrl: string; toJSON: ... | ...; setAlias: VirtualFolderLink; createFile: VirtualFolderLink; createFiles: VirtualFolderLink; createFolder: VirtualFolderLink; createFolders: VirtualFolderLink; hasFile: boolean; hasFolder: boolean; findFile: ... | ... | ...; findSubFolder: ... | ... | ...; getFiles: ...[]; getSubFolders: ...[]; open: ... | ... | ...; getItemCount: number; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; isFile: this is VirtualFile; getType: string; download: void; isDownloadable: boolean; linkedPath?: ... | ...; setLinkedFile: VirtualFileLink; setLinkedPath: VirtualFileLink; isValid: boolean; toJSON: ... | ...; setAlias: VirtualFileLink; setSource: VirtualFileLink; setContent: VirtualFileLink; id: string; open: ... | ...; read: Promise<...>; getIconUrl: string; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; }; }; initiated: boolean; loadedDefaultData: boolean; systemManager: { systemName: string; tagLine: string; skin: { systemIcon: string; appIcons: {[key: ...]: ...; } | undefined; appNames: {[key: ...]: ...; } | undefined; wallpapers: readonly string[]; defaultWallpaper: string; fileIcons: { generic: string; info?: ... | ...; text?: ... | ...; code?: ... | ...; external?: ... | ...; video?: ... | ...; audio?: ... | ...; }; folderIcons: { generic: string; images?: ... | ...; text?: ... | ...; link?: ... | ...; video?: ... | ...; audio?: ... | ...; }; loadStyleSheet: () => ... | undefined; defaultTheme: Theme | undefined; }; appsConfig: { apps: readonly { name: ...; id: ...; windowContent: ...; windowOptions?: ...; description: ...; iconUrl: ...; role: ...; associatedExtensions: ...; pinnedByDefault: ...; launchAtStartup: ...; category: ...; metadata: ...; showDesktopIcon: ...; isActive: ...; isPinned?: ...; isInstalled: ...; WindowContent: ...; setName: this; setDescription: this; setIconUrl: this; setRole: this; setAssociatedExtensions: this; setPinnedByDefault: this; setLaunchAtStartup: this; setInstalled: this; setCategory: this; setMetadata: this; setShowDesktopIcon: this; setWindowOptions: this; }[]; installedApps: readonly { name: ...; id: ...; windowContent: ...; windowOptions?: ...; description: ...; iconUrl: ...; role: ...; associatedExtensions: ...; pinnedByDefault: ...; launchAtStartup: ...; category: ...; metadata: ...; showDesktopIcon: ...; isActive: ...; isPinned?: ...; isInstalled: ...; WindowContent: ...; setName: this; setDescription: this; setIconUrl: this; setRole: this; setAssociatedExtensions: this; setPinnedByDefault: this; setLaunchAtStartup: this; setInstalled: this; setCategory: this; setMetadata: this; setShowDesktopIcon: this; setWindowOptions: this; }[]; getAppById: App<...> | null; getAppByFileExtension: App<...> | null; getAppByRole: App<...> | null; getAppsByCategory: App<...>[]; }; desktopConfig: { defaultIconSize: 0 | 1 | 2; defaultIconDirection: 0 | 1; }; miscConfig: { doubleClickDelay: number; }; modalsConfig: { defaultDialogSize: { x: number; y: number; clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; }; magnitude: number; setX: this; setY: this; set: this; round: this; normalize: Vector2; scale: Vector2; getDistanceSquared: number; getDistance: number; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; defaultFileSelectorSize: { x: number; y: number; clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; }; magnitude: number; setX: this; setY: this; set: this; round: this; normalize: Vector2; scale: Vector2; getDistanceSquared: number; getDistance: number; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; taskbarConfig: { height: number; }; trackingConfig: { enabled: boolean; googleAnalyticsMeasurementId: string; }; windowsConfig: { screenMargin: number; titleSeparator: string; minScreenSize: { x: number; y: number; clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; }; magnitude: number; setX: this; setY: this; set: this; round: this; normalize: Vector2; scale: Vector2; getDistanceSquared: number; getDistance: number; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; virtualDriveConfig: { saveData: false | { enableCompression: ...; prefix?: ...; migrations?: ...; }; defaultData: { includePicturesFolder?: ... | ... | ...; includeDocumentsFolder?: ... | ... | ...; includeDesktopFolder?: ... | ... | ...; includeSourceTree?: ... | ... | ...; includeAppsFolder?: ... | ... | ...; loadData?: ... | ...; }; }; storage: { enableCompression: boolean; prefix: string | undefined; store: void; load: string | null; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: string; size: number; }; decode: string; setPrefix: this; }; getUptime: string; }; storage: { enableCompression: boolean; prefix: string | undefined; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: string; size: number; }; decode: string; setPrefix: this; virtualDriveConfig: { saveData: false | { enableCompression: ...; prefix?: ...; migrations?: ...; }; defaultData: { includePicturesFolder?: ... | ... | ...; includeDocumentsFolder?: ... | ... | ...; includeDesktopFolder?: ... | ... | ...; includeSourceTree?: ... | ... | ...; includeAppsFolder?: ... | ... | ...; loadData?: ... | ...; }; }; load: string | null; store: void; synchronize: void; }; loadDefaultData: void; loadData: void; saveData: void; init: VirtualRoot; addShortcut: VirtualRoot; reset: void; path: string; displayPath: string; toJSON: VirtualRootJson | null; toString: string | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; on: Listener<VirtualRootEvents & Record<keyof ..., ...[]>, K>; once: Listener<VirtualRootEvents & Record<keyof ..., ...[]>, K>; onAsync: Listener<VirtualRootEvents & Record<keyof ..., ...[]>, K>; off: void; emit: void; } | null | undefined; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; once: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; onAsync: Listener<VirtualFileEvents & Record<keyof VirtualFileEvents, unknown[]>, K>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ....; files: readonly ({ extension: ...; source: ...; content: ...; setAlias: this; setSource: this; setContent: this; id: ...; open: ...; read: ...; isFile: this is (...); getIconUrl: ...; getType: ...; download: ...; isDownloadable: ...; toJSON: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | { extension: ...; source: ...; content: ...; isFile: this is (...); getType: ...; download: ...; isDownloadable: ...; linkedPath?: ...; setLinkedFile: ...; setLinkedPath: ...; isValid: ...; toJSON: ...; setAlias: ...; setSource: ...; setContent: ...; id: ...; open: ...; read: ...; getIconUrl: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; })[]; type: number | undefined; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; delete: void; isFolder: this is VirtualFolder<VirtualBaseEvents>; linkedPath?: string; setLinkedFolder: VirtualFolderLink; setLinkedPath: VirtualFolderLink; isValid: boolean; getIconUrl: string; toJSON: VirtualFolderLinkJson | null; setAlias: VirtualFolderLink; createFile: VirtualFolderLink; createFiles: VirtualFolderLink; createFolder: VirtualFolderLink; createFolders: VirtualFolderLink; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; open: object | null | undefined; getItemCount: number; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: ... | ...; read: Promise<...>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; toString: string | null; on: Listener<VirtualBaseEvents & Record<..., ...>, K>; once: Listener<VirtualBaseEvents & Record<..., ...>, K>; onAsync: Listener<VirtualBaseEvents & Record<..., ...>, K>; off: void; emit: void; })[]; files: readonly ({ extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<..., ...>, K>; once: Listener<VirtualFileEvents & Record<..., ...>, K>; onAsync: Listener<VirtualFileEvents & Record<..., ...>, K>; off: void; emit: void; } | { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; isFile: this is VirtualFile; getType: string; download: void; isDownloadable: boolean; linkedPath?: string; setLinkedFile: VirtualFileLink; setLinkedPath: VirtualFileLink; isValid: boolean; toJSON: VirtualFileLinkJson | null; setAlias: VirtualFileLink; setSource: VirtualFileLink; setContent: VirtualFileLink; id: string; open: object | null; read: Promise<string | null | undefined>; getIconUrl: string; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: ... | ...; read: Promise<...>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<..., ...>, K>; once: Listener<VirtualFileEvents & Record<..., ...>, K>; onAsync: Listener<VirtualFileEvents & Record<..., ...>, K>; off: void; emit: void; })[]; type: number | undefined; setAlias: this; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; addFile: this; createFile: this; createFiles: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolder: this; createFolders: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; open: object | null | undefined; delete: void; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; getItemCount: number; isFolder: this is VirtualFolder<VirtualBaseEvents>; getIconUrl: string; shortcuts: {[key: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { subFolders: readonly ({ readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; files: readonly ({ extension: ...; source: ...; content: ...; setAlias: this; setSource: this; setContent: this; id: ...; open: ...; read: ...; isFile: this is (...); getIconUrl: ...; getType: ...; download: ...; isDownloadable: ...; toJSON: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; } | { extension: ...; source: ...; content: ...; isFile: this is (...); getType: ...; download: ...; isDownloadable: ...; linkedPath?: ...; setLinkedFile: ...; setLinkedPath: ...; isValid: ...; toJSON: ...; setAlias: ...; setSource: ...; setContent: ...; id: ...; open: ...; read: ...; getIconUrl: ...; name: ...; alias: ...; parent: ...; isProtected: ...; iconUrl: ...; linkedFile: ...; linkedFolder: ...; editedByUser: ...; isRoot: ...; root: ...; isDeleted: ...; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: ...; confirmChanges: ...; path: ...; displayPath: ...; absolutePath: ...; canBeEdited: ...; getRoot: ...; isFolder: this is (...); toString: ...; on: ...; once: ...; onAsync: ...; off: ...; emit: ...; })[]; type: number | undefined; addFile: this; createFileLink: this; createFileLinks: this; addFolder: this; createFolderLink: this; createFolderLinks: this; remove: this; navigate: VirtualFolder<VirtualBaseEvents> | VirtualFile | null; navigateToFolder: VirtualFolder<VirtualBaseEvents> | null; navigateToFile: VirtualFile | null; delete: void; isFolder: this is VirtualFolder<VirtualBaseEvents>; linkedPath?: string; setLinkedFolder: VirtualFolderLink; setLinkedPath: VirtualFolderLink; isValid: boolean; getIconUrl: string; toJSON: VirtualFolderLinkJson | null; setAlias: VirtualFolderLink; createFile: VirtualFolderLink; createFiles: VirtualFolderLink; createFolder: VirtualFolderLink; createFolders: VirtualFolderLink; hasFile: boolean; hasFolder: boolean; findFile: VirtualFile | VirtualFileLink | null; findSubFolder: VirtualFolder<VirtualBaseEvents> | VirtualFolderLink | null; getFiles: VirtualFile[]; getSubFolders: VirtualFolder<VirtualBaseEvents>[]; open: object | null | undefined; getItemCount: number; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: ... | ...; read: Promise<...>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; toString: string | null; on: Listener<VirtualBaseEvents & Record<..., ...>, K>; once: Listener<VirtualBaseEvents & Record<..., ...>, K>; onAsync: Listener<VirtualBaseEvents & Record<..., ...>, K>; off: void; emit: void; } | { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<..., ...>, K>; once: Listener<VirtualFileEvents & Record<..., ...>, K>; onAsync: Listener<VirtualFileEvents & Record<..., ...>, K>; off: void; emit: void; } | { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; isFile: this is VirtualFile; getType: string; download: void; isDownloadable: boolean; linkedPath?: string; setLinkedFile: VirtualFileLink; setLinkedPath: VirtualFileLink; isValid: boolean; toJSON: VirtualFileLinkJson | null; setAlias: VirtualFileLink; setSource: VirtualFileLink; setContent: VirtualFileLink; id: string; open: object | null; read: Promise<string | null | undefined>; getIconUrl: string; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: ... | ...; read: Promise<...>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: ... | ...; name: string; alias: ... | ... | ...; parent: ... | ... | ...; isProtected: ... | ... | ... | ...; iconUrl: ... | ... | ...; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: ... | ... | ...; editedByUser: ... | ... | ... | ...; isRoot: ... | ... | ... | ...; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<(...)>; toString: ... | ...; on: Listener<..., ...>; once: Listener<..., ...>; onAsync: Listener<..., ...>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<..., ...>, K>; once: Listener<VirtualFileEvents & Record<..., ...>, K>; onAsync: Listener<VirtualFileEvents & Record<..., ...>, K>; off: void; emit: void; }; }; initiated: boolean; loadedDefaultData: boolean; systemManager: { systemName: string; tagLine: string; skin: { systemIcon: string; appIcons: {[key: string]: string; } | undefined; appNames: {[key: string]: string; } | undefined; wallpapers: readonly string[]; defaultWallpaper: string; fileIcons: { generic: string; info?: string; text?: string; code?: string; external?: string; video?: string; audio?: string; }; folderIcons: { generic: string; images?: string; text?: string; link?: string; video?: string; audio?: string; }; loadStyleSheet: () => void | undefined; defaultTheme: Theme | undefined; }; appsConfig: { apps: readonly { name: string; id: string; windowContent: FC<...> | null; windowOptions?: {[key: ...]: ...; fullscreen?: ...; setTitle?: ...; setIconUrl?: ...; close?: ...; focus?: ...; active?: ...; minimized?: ...; toggleMinimized?: ...; index?: ...; standalone?: ...; id?: ...; app?: ...; size?: ...; position?: ...; options?: ...; isFocused?: ...; lastInteraction?: ...; }; description: string | null; iconUrl: string | null; role: string | null; associatedExtensions: readonly string[]; pinnedByDefault: boolean; launchAtStartup: boolean; category: "Business" | "Developer tools" | "Education" | "Entertainment" | "Food & dining" | "Health & fitness" | "Kids & family" | "Lifestyle" | "Media" | "Medical" | "Multimedia design" | "Music" | "Navigation & maps" | "News & weather" | "Personal finance" | "Personalization" | "Photo & video" | "Productivity" | "Security" | "Shopping" | "Social" | "Sports" | "Travel" | "Utilities & tools" | null; metadata: { name: ...; version: ...; author: ...; } | null; showDesktopIcon: boolean; isActive: boolean; isPinned?: boolean; isInstalled: boolean; WindowContent: Element | null; setName: this; setDescription: this; setIconUrl: this; setRole: this; setAssociatedExtensions: this; setPinnedByDefault: this; setLaunchAtStartup: this; setInstalled: this; setCategory: this; setMetadata: this; setShowDesktopIcon: this; setWindowOptions: this; }[]; installedApps: readonly { name: string; id: string; windowContent: FC<...> | null; windowOptions?: {[key: ...]: ...; fullscreen?: ...; setTitle?: ...; setIconUrl?: ...; close?: ...; focus?: ...; active?: ...; minimized?: ...; toggleMinimized?: ...; index?: ...; standalone?: ...; id?: ...; app?: ...; size?: ...; position?: ...; options?: ...; isFocused?: ...; lastInteraction?: ...; }; description: string | null; iconUrl: string | null; role: string | null; associatedExtensions: readonly string[]; pinnedByDefault: boolean; launchAtStartup: boolean; category: "Business" | "Developer tools" | "Education" | "Entertainment" | "Food & dining" | "Health & fitness" | "Kids & family" | "Lifestyle" | "Media" | "Medical" | "Multimedia design" | "Music" | "Navigation & maps" | "News & weather" | "Personal finance" | "Personalization" | "Photo & video" | "Productivity" | "Security" | "Shopping" | "Social" | "Sports" | "Travel" | "Utilities & tools" | null; metadata: { name: ...; version: ...; author: ...; } | null; showDesktopIcon: boolean; isActive: boolean; isPinned?: boolean; isInstalled: boolean; WindowContent: Element | null; setName: this; setDescription: this; setIconUrl: this; setRole: this; setAssociatedExtensions: this; setPinnedByDefault: this; setLaunchAtStartup: this; setInstalled: this; setCategory: this; setMetadata: this; setShowDesktopIcon: this; setWindowOptions: this; }[]; getAppById: App<WindowProps> | null; getAppByFileExtension: App<WindowProps> | null; getAppByRole: App<WindowProps> | null; getAppsByCategory: App<WindowProps>[]; }; desktopConfig: { defaultIconSize: 0 | 1 | 2; defaultIconDirection: 0 | 1; }; miscConfig: { doubleClickDelay: number; }; modalsConfig: { defaultDialogSize: { x: number; y: number; clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; }; magnitude: number; setX: this; setY: this; set: this; round: this; normalize: Vector2; scale: Vector2; getDistanceSquared: number; getDistance: number; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; defaultFileSelectorSize: { x: number; y: number; clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; }; magnitude: number; setX: this; setY: this; set: this; round: this; normalize: Vector2; scale: Vector2; getDistanceSquared: number; getDistance: number; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; taskbarConfig: { height: number; }; trackingConfig: { enabled: boolean; googleAnalyticsMeasurementId: string; }; windowsConfig: { screenMargin: number; titleSeparator: string; minScreenSize: { x: number; y: number; clone: { readonly x: number; readonly y: number; readonly clone: ...; readonly magnitude: number; readonly setX: (x: number) => Vector2; readonly setY: (y: number) => Vector2; ... 10 more ...; readonly lerp: (vector2: Vector2, t: number) => Vector2; }; magnitude: number; setX: this; setY: this; set: this; round: this; normalize: Vector2; scale: Vector2; getDistanceSquared: number; getDistance: number; add: this; subtract: this; multiply: this; divide: this; lerp: this; }; }; virtualDriveConfig: { saveData: false | { enableCompression: boolean; prefix?: string; migrations?: readonly ...[]; }; defaultData: { includePicturesFolder?: boolean; includeDocumentsFolder?: boolean; includeDesktopFolder?: boolean; includeSourceTree?: boolean; includeAppsFolder?: boolean; loadData?: (virtualRoot: VirtualRoot) => void; }; }; storage: { enableCompression: boolean; prefix: string | undefined; store: void; load: string | null; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: string; size: number; }; decode: string; setPrefix: this; }; getUptime: string; }; storage: { enableCompression: boolean; prefix: string | undefined; rename: this; remove: this; clear: this; getItemByteSize: number; getEncodedByteSize: number; encode: { result: string; size: number; }; decode: string; setPrefix: this; virtualDriveConfig: { saveData: false | { enableCompression: boolean; prefix?: string; migrations?: readonly ...[]; }; defaultData: { includePicturesFolder?: boolean; includeDocumentsFolder?: boolean; includeDesktopFolder?: boolean; includeSourceTree?: boolean; includeAppsFolder?: boolean; loadData?: (virtualRoot: VirtualRoot) => void; }; }; load: string | null; store: void; synchronize: void; }; loadDefaultData: void; loadData: void; saveData: void; init: VirtualRoot; addShortcut: VirtualRoot; reset: void; path: string; displayPath: string; toJSON: VirtualRootJson | null; toString: string | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { extension: OptionalStringProperty; source: OptionalStringProperty; content: OptionalStringProperty; setAlias: this; setSource: this; setContent: this; id: string; open: object | null; read: Promise<OptionalStringProperty>; isFile: this is VirtualFile; getIconUrl: string; getType: string; download: void; isDownloadable: boolean; toJSON: VirtualFileJson | null; name: string; alias: string | null | undefined; parent: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; isProtected: boolean | null | undefined; iconUrl: string | null | undefined; linkedFile: { readonly extension: OptionalStringProperty; readonly source: OptionalStringProperty; readonly content: OptionalStringProperty; ... 40 more ...; readonly emit: <K extends keyof VirtualFileEvents>(event: K, ...args: (VirtualFileEvents & Record<...>)[K]) => void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; setName: this; setParent: this; setProtected: this; setIconUrl: this; delete: void; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFolder: this is VirtualFolder<VirtualBaseEvents>; toString: string | null; on: Listener<VirtualFileEvents & Record<keyof ..., ...[]>, K>; once: Listener<VirtualFileEvents & Record<keyof ..., ...[]>, K>; onAsync: Listener<VirtualFileEvents & Record<keyof ..., ...[]>, K>; off: void; emit: void; } | null | undefined; linkedFolder: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents & Record<...>)[K]) => void; })[]; ... 58 more... | null | undefined; editedByUser: boolean | null | undefined; isRoot: boolean | null | undefined; root: { readonly shortcuts: { readonly [x: string]: { readonly subFolders: readonly (... | { readonly linkedPath?: string | undefined; readonly setLinkedFolder: (folder: VirtualFolder<VirtualBaseEvents> | null) => VirtualFolderLink; ... 61 more ...; readonly emit: <K extends "update">(event: K, ...args: (VirtualBaseEvents...; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; on: Listener<VirtualRootEvents & Record<keyof VirtualRootEvents, unknown[]>, K>; once: Listener<VirtualRootEvents & Record<keyof VirtualRootEvents, unknown[]>, K>; onAsync: Listener<VirtualRootEvents & Record<keyof VirtualRootEvents, unknown[]>, K>; off: void; emit: void; } | null | undefined; isDeleted: boolean; id: string; setName: this; setParent: this; setProtected: this; setIconUrl: this; getType: string; confirmChanges: void; path: string; displayPath: string; absolutePath: string; canBeEdited: boolean; getRoot: VirtualRoot; isFile: this is VirtualFile; toString: string | null; on: Listener<VirtualBaseEvents & Record<"update", unknown[]>, K>; once: Listener<VirtualBaseEvents & Record<"update", unknown[]>, K>; onAsync: Listener<VirtualBaseEvents & Record<"update", unknown[]>, K>; off: void; emit: void; }; prompt: string; stream: { enabled: boolean; start: this; stop: this; signal: this; write: this; pipe: Stream<string>; wait: Promise<void>; on: Listener<StreamEvents<string>, K>; once: Listener<StreamEvents<string>, K>; onAsync: Listener<StreamEvents<string>, K>; off: void; emit: void; } | null; ttyBuffer: string | null; isUsingAltScreen: boolean; env: {[key: string]: string; }; }]
A tuple containing the stable Shell instance and its reactive ShellState snapshot.
Example
const sizeRef = useRef(Vector2.ZERO);
const [shell, state] = useShell({
app: myApp,
path: "~",
input: "echo \"Hello world!\"",
exit: () => closeWindow(),
sizeRef,
});