declare module "*.json"; // Deprecated NodeJS API usages in Webpack declare namespace NodeJS { interface Process { binding(internalModule: string): any; } } declare module "neo-async" { export interface Dictionary { [key: string]: T; } export type IterableCollection = T[] | IterableIterator | Dictionary; export interface ErrorCallback { (err?: T): void; } export interface AsyncBooleanResultCallback { (err?: E, truthValue?: boolean): void; } export interface AsyncResultCallback { (err?: E, result?: T): void; } export interface AsyncResultArrayCallback { (err?: E, results?: Array): void; } export interface AsyncResultObjectCallback { (err: E | undefined, results: Dictionary): void; } export interface AsyncFunction { (callback: (err?: E, result?: T) => void): void; } export interface AsyncFunctionEx { (callback: (err?: E, ...results: T[]) => void): void; } export interface AsyncIterator { (item: T, callback: ErrorCallback): void; } export interface AsyncForEachOfIterator { (item: T, key: number | string, callback: ErrorCallback): void; } export interface AsyncResultIterator { (item: T, callback: AsyncResultCallback): void; } export interface AsyncMemoIterator { (memo: R | undefined, item: T, callback: AsyncResultCallback): void; } export interface AsyncBooleanIterator { (item: T, callback: AsyncBooleanResultCallback): void; } export interface AsyncWorker { (task: T, callback: ErrorCallback): void; } export interface AsyncVoidFunction { (callback: ErrorCallback): void; } export type AsyncAutoTasks, E> = { [K in keyof R]: AsyncAutoTask }; export type AsyncAutoTask, E> = | AsyncAutoTaskFunctionWithoutDependencies | (keyof R | AsyncAutoTaskFunction)[]; export interface AsyncAutoTaskFunctionWithoutDependencies { (cb: AsyncResultCallback | ErrorCallback): void; } export interface AsyncAutoTaskFunction, E> { (results: R, cb: AsyncResultCallback | ErrorCallback): void; } export function each( arr: IterableCollection, iterator: AsyncIterator, callback?: ErrorCallback ): void; export function map( arr: T[] | IterableIterator, iterator: AsyncResultIterator, callback?: AsyncResultArrayCallback ): void; export function map( arr: Dictionary, iterator: AsyncResultIterator, callback?: AsyncResultArrayCallback ): void; export function parallel( tasks: Array>, callback?: AsyncResultArrayCallback ): void; export function parallel( tasks: Dictionary>, callback?: AsyncResultObjectCallback ): void; export const forEach: typeof each; } // There are no typings for @webassemblyjs/ast declare module "@webassemblyjs/ast" { export function traverse( ast: any, visitor: { ModuleImport?: (p: NodePath) => void; ModuleExport?: (p: NodePath) => void; Start?: (p: NodePath) => void; Global?: (p: NodePath) => void; } ); export class NodePath { node: T; } export class Node {} export class Identifier extends Node { value: string; } export class Start extends Node { index: Identifier; } export class ModuleImport extends Node { module: string; descr: { type: string; valtype?: string; id?: Identifier; signature?: Signature; }; name: string; } export class ModuleExport extends Node { name: string; descr: ModuleExportDescr; } type Index = Identifier | NumberLiteral; export class ModuleExportDescr extends Node { type: string; exportType: string; id: Index; } export class NumberLiteral extends Node { value: number; raw: string; } export class FloatLiteral extends Node {} export class GlobalType extends Node { valtype: string; } export class Global extends Node { init: Instruction[]; globalType: GlobalType; } export class FuncParam extends Node { valtype: string; } export class Instruction extends Node { id: string; args: NumberLiteral[]; } export class CallInstruction extends Instruction {} export class ObjectInstruction extends Instruction {} export class Func extends Node { signature: Signature; } export class Signature { type: "Signature"; params: FuncParam[]; results: string[]; } export class TypeInstruction extends Node {} export class IndexInFuncSection extends Node {} export function indexLiteral(index: number): Index; export function numberLiteralFromRaw(num: number): NumberLiteral; export function floatLiteral( value: number, nan?: boolean, inf?: boolean, raw?: string ): FloatLiteral; export function global(globalType: string, nodes: Node[]): Global; export function identifier(indentifier: string): Identifier; export function funcParam(valType: string, id: Identifier): FuncParam; export function instruction(inst: string, args: Node[]): Instruction; export function callInstruction(funcIndex: Index): CallInstruction; export function objectInstruction( kind: string, type: string, init: Node[] ): ObjectInstruction; export function signature(params: FuncParam[], results: string[]): Signature; export function func(initFuncId, signature: Signature, funcBody): Func; export function typeInstruction( id: Identifier, functype: Signature ): TypeInstruction; export function indexInFuncSection(index: Index): IndexInFuncSection; export function moduleExport( identifier: string, descr: ModuleExportDescr ): ModuleExport; export function moduleExportDescr( type: string, index: Index ): ModuleExportDescr; export function getSectionMetadata(ast: any, section: string); export class FuncSignature { args: string[]; result: string[]; } // Node matcher export function isGlobalType(n: Node): boolean; export function isTable(n: Node): boolean; export function isMemory(n: Node): boolean; export function isFuncImportDescr(n: Node): boolean; } /** * Global variable declarations * @todo Once this issue is resolved, remove these globals and add JSDoc onsite instead * https://github.com/Microsoft/TypeScript/issues/15626 */ declare const $hash$; declare const $requestTimeout$; declare const installedModules; declare const $require$; declare const hotDownloadManifest; declare const hotDownloadUpdateChunk; declare const hotDisposeChunk; declare const modules; declare const installedChunks; declare const hotAddUpdateChunk; declare const parentHotUpdateCallback; declare const $hotChunkFilename$; declare const $hotMainFilename$; declare const WebAssembly; declare const importScripts; declare const $crossOriginLoading$; declare const chunkId; type TODO = any;