/// import "jsrender"; declare global { function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; interface Array { remove(elem?: T): boolean; last?(): T; pop_front(): T | undefined; /** * @param entry The entry to toggle * @returns `true` if the entry has been inserted and false if the entry has been deleted */ toggle(entry: T): boolean; /** * @param entry The entry to toggle * @param insert Whatever the entry should be in the array or not * @returns `true` if the array has been modified */ toggle(entry: T, insert: boolean): any; } interface JSON { map_to(object: T, json: any, variables?: string | string[], validator?: (map_field: string, map_value: string) => boolean, variable_direction?: number): number; map_field_to(object: T, value: any, field: string): boolean; } type JQueryScrollType = "height" | "width"; interface JQuery { renderTag(values?: any): JQuery; hasScrollBar(direction?: JQueryScrollType): boolean; visible_height(): number; visible_width(): number; firstParent(selector: string): JQuery; } interface JQueryStatic { spawn(tagName: K): JQuery; } interface Window { __REACT_DEVTOOLS_GLOBAL_HOOK__: any; readonly webkitAudioContext: typeof AudioContext; readonly AudioContext: typeof OfflineAudioContext; readonly OfflineAudioContext: typeof OfflineAudioContext; readonly webkitOfflineAudioContext: typeof OfflineAudioContext; readonly RTCPeerConnection: typeof RTCPeerConnection; readonly Pointer_stringify: any; readonly require: typeof require; } const __non_webpack_require__: typeof require; interface Navigator { browserSpecs: { name: string; version: string; }; mozGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void; webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void; } interface ObjectConstructor { isSimilar(a: any, b: any): boolean; } } export declare type IfEquals = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) ? A : B; export declare type WritableKeys = { [P in keyof T]-?: IfEquals<{ [Q in P]: T[P]; }, { -readonly [Q in P]: T[P]; }, P, never>; }[keyof T]; export declare type ReadonlyKeys = { [P in keyof T]: IfEquals<{ [Q in P]: T[P]; }, { -readonly [Q in P]: T[P]; }, never, P>; }[keyof T];