declare namespace pc { /** * @name pc.ScriptRegistry * @class Container for all Script Types that are available to this application * @description Create an instance of a pc.ScriptRegistry. * Note: PlayCanvas scripts can access the Script Registry from inside the application with {@link pc.Application#scripts} {@link pc.ADDRESS_REPEAT}. * @param {pc.Application} app Application to attach registry to. */ class ScriptRegistry { constructor(app: pc.Application) app: pc.Application; /** * @function * @name pc.ScriptRegistry#add * @description Add {@link ScriptType} to registry. * Note: when {@link pc.createScript} is called, it will add the {@link ScriptType} to the registry automatically. * If a script already exists in registry, and the new script has a `swap` method defined, * it will perform code hot swapping automatically in async manner. * @param {ScriptType} scriptType Script Type that is created using {@link pc.createScript} * @returns {Boolean} True if added for the first time or false if script already exists * @example * var PlayerController = pc.createScript('playerController'); * // playerController Script Type will be added to pc.ScriptRegistry automatically * app.scripts.has('playerController') === true; // true */ add(script: ScriptType): boolean; /** * @function * @name pc.ScriptRegistry#remove * @description Remove {@link ScriptType}. * @param {String} name Name of a {@link ScriptType} to remove * @returns {Boolean} True if removed or False if already not in registry * @example * app.scripts.remove('playerController'); */ remove(script: string): boolean; /** * @function * @name pc.ScriptRegistry#get * @description Get {@link ScriptType} by name. * @param {String} name Name of a {@link ScriptType}. * @returns {ScriptType} The Script Type if it exists in the registry or null otherwise. * @example * var PlayerController = app.scripts.get('playerController'); */ get(name: string): ScriptType; /** * @function * @name pc.ScriptRegistry#has * @description Check if a {@link ScriptType} with the specified name is in the registry. * @param {String} name Name of a {@link ScriptType} * @returns {Boolean} True if {@link ScriptType} is in registry * @example * if (app.scripts.has('playerController')) { * // playerController is in pc.ScriptRegistry * } */ has(name: string): boolean; /** * @function * @name pc.ScriptRegistry#list * @description Get list of all {@link ScriptType}s from registry. * @returns {ScriptType[]} list of all {@link ScriptType}s in registry * @example * // logs array of all Script Type names available in registry * console.log(app.scripts.list().map(function(o) { * return o.name; * })); */ list(): ScriptType[]; } }