/** * A runtime object which captures compile-time type information. * * #### Notes * A token captures the compile-time type of an interface or class in * an object which is useful for various type-safe runtime operations. * * #### Example * ``` typescript * interface IThing { * value: number; * } * * const IThing = new Token('my-module/IThing'); * * // some runtime type registry * registry.registerFactory(IThing, () => { value: 42 }); * * // later... * let thing = registry.getInstance(IThing); * thing.value; // 42 * ``` */ export declare class Token { /** * Construct a new token. * * @param name - A human readable name for the token. */ constructor(name: string); /** * The human readable name for the token. * * #### Notes * This can be useful for debugging and logging. * * This is a read-only property. */ readonly name: string; private _name; private _tokenStructuralPropertyT; }