1/*! ***************************************************************************** 2Copyright (c) Microsoft Corporation. All rights reserved. 3Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4this file except in compliance with the License. You may obtain a copy of the 5License at http://www.apache.org/licenses/LICENSE-2.0 6 7THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 8KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 9WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 10MERCHANTABLITY OR NON-INFRINGEMENT. 11 12See the Apache Version 2.0 License for specific language governing permissions 13and limitations under the License. 14***************************************************************************** */ 15 16 17 18/// <reference no-default-lib="true"/> 19 20 21interface SymbolConstructor { 22 /** 23 * A reference to the prototype. 24 */ 25 readonly prototype: Symbol; 26 27 /** 28 * Returns a new unique Symbol value. 29 * @param description Description of the new Symbol object. 30 */ 31 (description?: string | number): symbol; 32 33 /** 34 * Returns a Symbol object from the global symbol registry matching the given key if found. 35 * Otherwise, returns a new symbol with this key. 36 * @param key key to search for. 37 */ 38 for(key: string): symbol; 39 40 /** 41 * Returns a key from the global symbol registry matching the given Symbol if found. 42 * Otherwise, returns a undefined. 43 * @param sym Symbol to find the key for. 44 */ 45 keyFor(sym: symbol): string | undefined; 46} 47 48declare var Symbol: SymbolConstructor;