--- /dev/null
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+
+
+
+/// <reference no-default-lib="true"/>\r
+
+
+interface ProxyHandler<T extends object> {\r
+ getPrototypeOf? (target: T): object | null;\r
+ setPrototypeOf? (target: T, v: any): boolean;\r
+ isExtensible? (target: T): boolean;\r
+ preventExtensions? (target: T): boolean;\r
+ getOwnPropertyDescriptor? (target: T, p: PropertyKey): PropertyDescriptor | undefined;\r
+ has? (target: T, p: PropertyKey): boolean;\r
+ get? (target: T, p: PropertyKey, receiver: any): any;\r
+ set? (target: T, p: PropertyKey, value: any, receiver: any): boolean;\r
+ deleteProperty? (target: T, p: PropertyKey): boolean;\r
+ defineProperty? (target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean;\r
+ enumerate? (target: T): PropertyKey[];\r
+ ownKeys? (target: T): PropertyKey[];\r
+ apply? (target: T, thisArg: any, argArray?: any): any;\r
+ construct? (target: T, argArray: any, newTarget?: any): object;\r
+}\r
+\r
+interface ProxyConstructor {\r
+ revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };\r
+ new <T extends object>(target: T, handler: ProxyHandler<T>): T;\r
+}\r
+declare var Proxy: ProxyConstructor;\r