diff --git a/build.gradle.kts b/build.gradle.kts index 90efe8e..c85d539 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,135 +1,16 @@ -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension - plugins { - kotlin("multiplatform") version "1.5.31" + base + +// val kotlinVersion = "1.5.31" +// kotlin("jvm") version kotlinVersion apply false +// kotlin("js") version kotlinVersion apply false +// kotlin("multiplatform") version kotlinVersion apply false + +// id("com.github.node-gradle.node") version "3.1.1" apply false } group = "dev.adamko.factoriowebmap" -version = "1.0-SNAPSHOT" - -//repositories { -// mavenCentral() -// maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") -//} - - -kotlin { - - // - val hostOs = System.getProperty("os.name") - val isMingwX64 = hostOs.startsWith("Windows") - val nativeTarget = when { - hostOs == "Mac OS X" -> macosX64("native") - hostOs == "Linux" -> linuxX64("native") - isMingwX64 -> mingwX64("native") - else -> throw GradleException( - "Host OS '$hostOs' is not supported in Kotlin/Native.") - } - - nativeTarget.apply { - binaries { - executable { - entryPoint = "main" - } - sharedLib { - baseName = if (isMingwX64) "libnative" else "native" - } - } - } - sourceSets { - val nativeMain by getting { - dependencies { - implementation("com.soywiz.korlibs.luak:luak:2.4.3") - } - } - val nativeTest by getting { - dependencies { - implementation(kotlin("test")) - - } - } - } - // - - // - js(IR) { - binaries.executable() - browser { - commonWebpackConfig { - cssSupport.enabled = true - } - } - - useCommonJs() - nodejs() - - compilations.all { - packageJson { - customField( - "scripts", mapOf( - "build" to "tstl", - "dev" to "tstl --watch", - ) - ) - } - } -// compilations["main"] -// .packageJson { -// customField( -// "scripts", mapOf( -// "build" to "tstl", -// "dev" to "tstl --watch", -// ) -// ) -// } - } - - sourceSets { - - val jsMain by getting { - kotlin.srcDir("externals02") -// kotlin.srcDir("externals") - - dependencies { - - val kotlinWrappersVersion = "0.0.1-pre.254-kotlin-1.5.31" - implementation( - project.dependencies.enforcedPlatform( - "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" - ) - ) - - implementation("org.jetbrains.kotlin-wrappers:kotlin-react") - implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom") - implementation(npm("react", "17.0.2")) - implementation(npm("react-dom", "17.0.2")) - -// implementation("org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7") { -// because("https://github.com/Kotlin/kotlinx-nodejs") -// } - - val generateExternals = false - implementation(npm("typescript-to-lua", "1.0.1", generateExternals = generateExternals)) - implementation(npm("typed-factorio", "0.7.1", generateExternals = generateExternals)) - implementation(npm("lua-types", "2.11.0", generateExternals = generateExternals)) - implementation(npm("typescript", "4.4.3", generateExternals = generateExternals)) - } - } - - val jsTest by getting { - dependencies { - implementation(kotlin("test-js")) - } - } - } - // - -} - -configure { - versions.dukat.version = "0.5.8-rc.4-dev.20211001" -// versions.dukat.version = "0.5.8-rc.4" -} +version = "0.0.2" tasks.wrapper { gradleVersion = "7.2" diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..4f2b743 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,15 @@ +plugins { + `kotlin-dsl` +} + +dependencies { + + val kotlinVersion = "1.5.31" + + implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersion")) + + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin") + + implementation("com.github.node-gradle:gradle-node-plugin:3.1.1") + +} diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 0000000..3080aa2 --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1,43 @@ +rootProject.name = "buildSrc" + +enableFeaturePreview("VERSION_CATALOGS") +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + +@Suppress("UnstableApiUsage") +dependencyResolutionManagement { + + repositories { + mavenCentral() + gradlePluginPortal() + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") + maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") + + // Declare the Node.js download repository + ivy { + name = "Node.js" + setUrl("https://nodejs.org/dist/") + patternLayout { + artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") + } + metadataSources { + artifact() + } + content { + includeModule("org.nodejs", "node") + } + } + } + + pluginManagement { + + repositories { + mavenCentral() + gradlePluginPortal() + maven { + url = uri("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") + } + } + + } + +} diff --git a/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/base.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/base.gradle.kts new file mode 100644 index 0000000..02ed00f --- /dev/null +++ b/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/base.gradle.kts @@ -0,0 +1,15 @@ +package dev.adamko.factoriowebmap.archetype + +plugins { + base +} + +group = rootProject.group.toString() + "." + project.name +version = rootProject.version + +val projectId by extra(rootProject.name + "-" + project.name) +val modBuildDir by extra(layout.buildDirectory.dir(projectId).get()) + +//group = "dev.adamko.factoriowebmap" +//version = "0.0.1" + diff --git a/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/kotlin-js.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/kotlin-js.gradle.kts new file mode 100644 index 0000000..176bf65 --- /dev/null +++ b/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/kotlin-js.gradle.kts @@ -0,0 +1,72 @@ +package dev.adamko.factoriowebmap.archetype + +import org.gradle.kotlin.dsl.kotlin +import com.github.gradle.node.npm.task.NpmTask +import com.github.gradle.node.task.NodeTask +import org.jetbrains.kotlin.gradle.targets.js.dukat.DtsResolver +import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask +import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask +import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs +import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject + + +plugins { + kotlin("js") + id("com.github.node-gradle.node") + id("dev.adamko.factoriowebmap.archetype.base") +} + +kotlin { + js(IR) { + + binaries.executable() + + useCommonJs() + nodejs() +// +//// compilations.all { +// compilations["main"].apply { +// packageJson { +// customField( +// "scripts", +// mapOf( +// "build" to "tstl", +// "dev" to "tstl --watch", +// ) +// ) +// } +// } + } +} + +val rootPackageJson by rootProject.tasks.getting(RootPackageJsonTask::class) + +//fun NpmTask.setNodeModulesPath(path: String): Unit = +// environment.put("NODE_PATH", path) +// +//fun NpmTask.setNodeModulesPath(folder: File): Unit = +// setNodeModulesPath(folder.normalize().absolutePath) + + +val nodePath: Directory by extra { + val file = rootPackageJson.rootPackageJson.parentFile.normalize() + logger.lifecycle("Found root NODE_PATH: $file") + project.layout.dir(provider { file }).get() +} + +val nodeModulesDir: Directory by extra { + val file = nodePath.dir(NpmProject.NODE_MODULES) + logger.lifecycle("Found root NODE_MODULES: $file") + file +} + +node { + download.set(true) + version.set("14.18.0") + + distBaseUrl.set(null as String?) // set by dependencyResolutionManagement + + nodeProjectDir.set(nodePath) +// nodeProjectDir.set(packageJson.packageJson.parentFile.normalize()) +} + diff --git a/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/kotlin-jvm.gradle.kts new file mode 100644 index 0000000..4ad22ae --- /dev/null +++ b/buildSrc/src/main/kotlin/dev/adamko/factoriowebmap/archetype/kotlin-jvm.gradle.kts @@ -0,0 +1,13 @@ +package dev.adamko.factoriowebmap.archetype + +plugins { + id("dev.adamko.factoriowebmap.archetype.base") + kotlin("jvm") +} + +kotlin { +} + +dependencies { + implementation(platform("org.jetbrains.kotlin:kotlin-bom")) +} diff --git a/modules/mod/build.gradle.kts b/modules/mod/build.gradle.kts index 2c1a95a..742c8f3 100644 --- a/modules/mod/build.gradle.kts +++ b/modules/mod/build.gradle.kts @@ -1,7 +1,8 @@ +import com.github.gradle.node.npm.task.NpmTask import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { -// kotlin("js") + base id("com.github.node-gradle.node") } @@ -11,141 +12,62 @@ version = rootProject.version node { download.set(true) version.set("14.18.0") -// version.set("16.10.0") + + nodeProjectDir.set(layout.projectDirectory.dir("src")) + + distBaseUrl.set(null as String?) // set root dependencyResolutionManagement } -// "@types/node": "ts4.4", -// 16.10.3 = ts4.4, see https://www.npmjs.com/package/@types/node +val projectId = rootProject.name + "-" + project.name +val modBuildDir = layout.buildDirectory.dir(projectId).get() +//val tsSrcDir = layout.projectDirectory.dir("src") -//repositories { -// mavenCentral() -// maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") -// maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") -//} - -//kotlin { -// js(IR) { -// -// binaries.executable() -// -// browser { -// commonWebpackConfig { -// cssSupport.enabled = true -// } -// } -// -// useCommonJs() -// nodejs() -// -// compilations["main"].apply { -// packageJson { -// customField( -// "scripts", -// mapOf( -// "build" to "tstl", -// "dev" to "tstl --watch", -// ) -// ) -// } -// } -// } -// -// sourceSets { -// val main by getting { -//// kotlin.srcDir("externals02") -//// kotlin.srcDir("externals") -// -// dependencies { -// -// val kotlinWrappersVersion = "0.0.1-pre.254-kotlin-1.5.31" -// implementation( -// project.dependencies.enforcedPlatform( -// "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" -// ) -// ) -// -// implementation("org.jetbrains.kotlin-wrappers:kotlin-react") -// implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom") -// implementation(npm("react", "17.0.2")) -// implementation(npm("react-dom", "17.0.2")) -// -//// implementation("org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7") { -//// because("https://github.com/Kotlin/kotlinx-nodejs") -//// } -// -// val generateExternals = false -// implementation(npm("typescript-to-lua", "1.0.1", generateExternals = generateExternals)) -// implementation(npm("typed-factorio", "0.7.1", generateExternals = generateExternals)) -// implementation(npm("lua-types", "2.11.0", generateExternals = generateExternals)) -// implementation(npm("typescript", "4.4.3", generateExternals = generateExternals)) -// } -// } -// -// val test by getting { -// dependencies { -// implementation(kotlin("test-js")) -// } -// } -// } -// -//} - -val tstlTask = tasks.register("tstl") { +val tstlTask = tasks.register("tstl") { description = "Typescript To Lua" - group = "${rootProject.group}" + group = projectId + dependsOn(tasks.npmInstall) + execOverrides { standardOutput = System.out } + npmCommand.set(listOf("run", "build")) - args.set(listOf("--", "--outDir", "$buildDir/npm-output")) -// args.set(listOf("test")) + + val outputDir = modBuildDir.dir("tstl") + args.set(parseSpaceSeparatedArgs("-- --outDir $outputDir")) + outputs.dir(outputDir) + ignoreExitValue.set(false) -// environment.set(mapOf("MY_CUSTOM_VARIABLE" to "hello")) - workingDir.set(projectDir) - execOverrides { - standardOutput = System.out - } - inputs.dir("node_modules") - inputs.dir(fileTree("src/main/typescript")) - inputs.files( - "tsconfig.json", - "package.json", - ) - outputs.dir("$buildDir/factorio-web-map/") +// workingDir.set(tsSrcDir.asFile) + inputs.dir(node.nodeProjectDir) +// inputs.dir("node_modules") +// inputs.dir(fileTree("src")) +// inputs.files( +// "tsconfig.json", +// "package.json", +// ) +// outputs.dir("$buildDir/factorio-web-map/") // outputs.dir("$buildDir/npm-output") -// outputs.upToDateWhen { true } +// outputs.upToDateWhen { false } } -//sourceSets { -// val typescript by creating { -// setBuildDir("src/main/typescript") -// } -//} +val modPackageTask = tasks.register("package") { + description = "Package mod" + group = projectId + dependsOn(tstlTask) -//dependencies { -// val kotlinWrappersVersion = "0.0.1-pre.254-kotlin-1.5.31" -// implementation( -// project.dependencies.enforcedPlatform( -// "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" -// ) -// ) -// -// implementation("org.jetbrains.kotlin-wrappers:kotlin-react") -// implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom") -// implementation(npm("react", "17.0.2")) -// implementation(npm("react-dom", "17.0.2")) -// -// // @types/node + from(layout.projectDirectory.dir("src")) { + exclude("*.ts") + into(rootProject.name) + } + from(tstlTask) { + into(rootProject.name) + } + + archiveFileName.set("${rootProject.name}_${rootProject.version}.zip") + destinationDirectory.set(modBuildDir.dir("dist")) + +} + +tasks.build { dependsOn(tstlTask, modPackageTask) } -//// implementation("org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7") { -//// because("https://github.com/Kotlin/kotlinx-nodejs") -//// } -// -// val generateExternals = false -// implementation(npm("typescript-to-lua", "1.0.1", generateExternals = generateExternals)) -// implementation(npm("typed-factorio", "0.7.1", generateExternals = generateExternals)) -// implementation(npm("lua-types", "2.11.0", generateExternals = generateExternals)) -// implementation(npm("typescript", "4.4.3", generateExternals = generateExternals)) -// -// testImplementation(kotlin("test-js")) -//} \ No newline at end of file diff --git a/modules/mod/data.ts b/modules/mod/data.ts new file mode 100644 index 0000000..eef4c4c --- /dev/null +++ b/modules/mod/data.ts @@ -0,0 +1 @@ +// require("item") \ No newline at end of file diff --git a/modules/mod/events.lua b/modules/mod/events.lua deleted file mode 100644 index ef8f222..0000000 --- a/modules/mod/events.lua +++ /dev/null @@ -1,9 +0,0 @@ ---[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]] -script.on_event( - {defines.events.on_pre_build, defines.events.on_player_dropped_item}, - function(e) - log( - (("player " .. tostring(e.player_index)) .. " dropped item, tick:") .. tostring(e.tick) - ) - end -) diff --git a/modules/mod/item.ts b/modules/mod/item.ts new file mode 100644 index 0000000..d39f9dd --- /dev/null +++ b/modules/mod/item.ts @@ -0,0 +1,12 @@ +import * as util from "util"; +import { Data, Mods } from "typed-factorio/data/types" + + +declare const data: Data +declare const mods: Mods + +let fireArmour = util.table.deepcopy(data.raw["armor"]["heavy-armor"]) + +fireArmour.name = "fire-armour" +fireArmour.icon + diff --git a/modules/mod/settings.gradle.kts b/modules/mod/settings.gradle.kts deleted file mode 100644 index 90bb0a9..0000000 --- a/modules/mod/settings.gradle.kts +++ /dev/null @@ -1,3 +0,0 @@ -rootProject.name = "factorio-web-map-mod" - -rootProject.description = "Factorio Web Map mod" diff --git a/modules/mod/src/changelog.txt b/modules/mod/src/changelog.txt new file mode 100644 index 0000000..956eb6b --- /dev/null +++ b/modules/mod/src/changelog.txt @@ -0,0 +1,4 @@ +--------------------------------------------------------------------------------------------------- +Version: 0.0.1 + Features: + - Factorio Web Map diff --git a/modules/mod/src/control.ts b/modules/mod/src/control.ts new file mode 100644 index 0000000..544678b --- /dev/null +++ b/modules/mod/src/control.ts @@ -0,0 +1 @@ +require("events") \ No newline at end of file diff --git a/modules/mod/src/events.ts b/modules/mod/src/events.ts new file mode 100644 index 0000000..dc2b9b5 --- /dev/null +++ b/modules/mod/src/events.ts @@ -0,0 +1,19 @@ +script.on_event( + [defines.events.on_pre_build, defines.events.on_player_dropped_item], + (e: OnPreBuildEvent | OnPlayerDroppedItemEvent) => { + game.print("player " + e.player_index + " dropped item, tick:" + e.tick) + } +); + +script.on_event( + defines.events.on_tick, + (e: OnTickEvent) => { + if (e.tick % 60 == 0) { + game.print("test mod tick: " + e.tick) + } + } +); + +script.on_load(() => { + game.print("loaded Factorio Web Map!") +}); diff --git a/modules/mod/src/info.json b/modules/mod/src/info.json new file mode 100644 index 0000000..f24f7d0 --- /dev/null +++ b/modules/mod/src/info.json @@ -0,0 +1,8 @@ +{ + "name": "factorio-web-map", + "version": "0.0.1", + "title": "Factorio Web Map", + "author": "fredthedeadhead", + "factorio_version": "1.1", + "dependencies": [] +} diff --git a/modules/mod/src/main/typescript/events.ts b/modules/mod/src/main/typescript/events.ts deleted file mode 100644 index c8453b4..0000000 --- a/modules/mod/src/main/typescript/events.ts +++ /dev/null @@ -1,6 +0,0 @@ -script.on_event( - [defines.events.on_pre_build, defines.events.on_player_dropped_item], - (e: OnPreBuildEvent | OnPlayerDroppedItemEvent) => { - log("player " + e.player_index + " dropped item, tick:" + e.tick) - } -) \ No newline at end of file diff --git a/modules/mod/package-lock.json b/modules/mod/src/package-lock.json similarity index 100% rename from modules/mod/package-lock.json rename to modules/mod/src/package-lock.json diff --git a/modules/mod/package.json b/modules/mod/src/package.json similarity index 89% rename from modules/mod/package.json rename to modules/mod/src/package.json index dc0fc6b..8690038 100644 --- a/modules/mod/package.json +++ b/modules/mod/src/package.json @@ -16,7 +16,6 @@ }, "dependencies": { "react": "17.0.2", - "react-dom": "17.0.2", "typescript-to-lua": "1.0.1", "typed-factorio": "0.7.1", "lua-types": "2.11.0", @@ -24,5 +23,8 @@ }, "peerDependencies": {}, "optionalDependencies": {}, - "bundledDependencies": [] + "bundledDependencies": [], + "//": { + "react-dom": "17.0.2" + } } diff --git a/modules/mod/src/thumbnail.png b/modules/mod/src/thumbnail.png new file mode 100644 index 0000000..d443178 Binary files /dev/null and b/modules/mod/src/thumbnail.png differ diff --git a/modules/mod/tsconfig.json b/modules/mod/src/tsconfig.json similarity index 100% rename from modules/mod/tsconfig.json rename to modules/mod/src/tsconfig.json diff --git a/modules/mod/test/docker-compose.yml b/modules/mod/test/docker-compose.yml new file mode 100644 index 0000000..5359a78 --- /dev/null +++ b/modules/mod/test/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.9" +services: + factorio: + image: factoriotools/factorio:1.1.41 +# logging: +# driver: "json-file" + container_name: "factorio" + restart: "unless-stopped" + ports: + - "34197:34197/udp" + - "27015:27015/tcp" + volumes: + - "./data:/factorio" +# environment: +# - PUID=1000 +# - PGID=1000 +# - UPDATE_MODS_ON_START=true +# - USERNAME=FactorioUsername +# - TOKEN=FactorioToken diff --git a/modules/mod2/build.gradle.kts b/modules/mod2/build.gradle.kts new file mode 100644 index 0000000..c981bd1 --- /dev/null +++ b/modules/mod2/build.gradle.kts @@ -0,0 +1,159 @@ +import com.github.gradle.node.npm.task.NpmTask +import com.github.gradle.node.task.NodeTask +import org.gradle.api.internal.project.ProjectInternal +import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatRunner +import org.jetbrains.kotlin.gradle.targets.js.dukat.ExternalsOutputFormat +import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask +import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask +import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs +import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject +import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject + +plugins { + id("dev.adamko.factoriowebmap.archetype.kotlin-js") +} + +//group = rootProject.group.toString() + "." + project.name +//version = rootProject.version +// +//val projectId = rootProject.name + "-" + project.name +val projectId: String by project.extra +val modBuildDir: Directory = layout.buildDirectory.dir(projectId).get() +val nodeModulesDir: Directory by project.extra + +kotlin { + + js(IR) { + + binaries.executable() + + useCommonJs() + nodejs() + +// compilations.all { + compilations["main"].apply { + packageJson { + customField( + "scripts", + mapOf( + "build" to "tstl", + "dev" to "tstl --watch", + ) + ) + } + } + + +// kotlin.srcDir("src/main/myKotlin") +// } + sourceSets["main"].apply { +// sourceSets.create("dukat").apply { + kotlin.srcDir(project.layout.projectDirectory.dir("dukat-custom")) + } + + +// sourceSets { +// all { +// languageSettings.optIn("kotlin.ExperimentalStdlibApi") +// languageSettings.optIn("kotlin.time.ExperimentalTime") +// } +// } + } +} + +dependencies { + val kotlinWrappersVersion = "0.0.1-pre.254-kotlin-1.5.31" + implementation( + project.dependencies.enforcedPlatform( + "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" + ) + ) + + implementation("org.jetbrains.kotlin-wrappers:kotlin-react") +// implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom") + implementation(npm("react", "17.0.2")) +// implementation(npm("react-dom", "17.0.2")) + +// implementation("org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7") { +// because("https://github.com/Kotlin/kotlinx-nodejs") +// } + + val generateExternals = false + implementation(npm("typescript-to-lua", "1.0.1", generateExternals = generateExternals)) + implementation(npm("typed-factorio", "0.7.1", generateExternals = true)) + implementation(npm("lua-types", "2.11.0", generateExternals = generateExternals)) + implementation(npm("typescript", "4.4.3", generateExternals = generateExternals)) + + testImplementation(kotlin("test-js")) +} + +//val rootPackageJson: RootPackageJsonTask by tasks.getting(RootPackageJsonTask::class) +//val rootPackageJson by rootProject.tasks.getting(RootPackageJsonTask::class) +//val packageJson by rootProject.tasks.getting(KotlinPackageJsonTask::class) +//val packageJson : RootPackageJsonTask by tasks.named(RootPackageJsonTask.NAME) + +//node { +// download.set(true) +// version.set("14.18.0") +// +// distBaseUrl.set(null as String?) // set by dependencyResolutionManagement +// +// nodeProjectDir.set(rootPackageJson.rootPackageJson.parentFile.normalize()) +//// nodeProjectDir.set(packageJson.packageJson.parentFile.normalize()) +//} + + +//fun NpmTask.setNodeModulesPath(path: String): Unit = +// environment.put("NODE_PATH", path) +// +//fun NpmTask.setNodeModulesPath(folder: File): Unit = +// setNodeModulesPath(folder.normalize().absolutePath) + +tasks { + register("tstl") { + description = "Typescript To Lua" + group = projectId + + dependsOn(build) + +// setNodeModulesPath(node.nodeProjectDir.dir("node_modules").get().asFile) +// setNodeModulesPath(node.nodeProjectDir.dir(NpmProject.NODE_MODULES).get().asFile) + val nodeModulesDir: Directory by project.extra + environment.put("NODE_PATH", nodeModulesDir.asFile.absolutePath) + + execOverrides { standardOutput = System.out } + + npmCommand.set(listOf("run", "build")) + + val outputDir = modBuildDir.dir("tstl") + args.set(parseSpaceSeparatedArgs("-- --outDir $outputDir")) + outputs.dir(outputDir) + + ignoreExitValue.set(false) + inputs.dir(rootProject.layout.buildDirectory.dir("js")) + } + + register("dukat-typed-factorio") { + group = projectId + + val npmProject = kotlin.js().compilations["main"].npmProject + + val files = nodeModulesDir.dir("typed-factorio") + .asFileTree + .filter { it.extension in setOf("ts", "d.ts") } + .files + + logger.lifecycle("Converting typed-factorio files: ${files.joinToString { it.name }}") + + val runner = DukatRunner( + npmProject, + files, + ExternalsOutputFormat.SOURCE, + project.layout.projectDirectory.dir("dukat-custom").asFile, + ) + val services = (project as ProjectInternal).services + doLast { + runner.execute(services) + } + } +} diff --git a/modules/mod2/dukat-custom/5.2-only.bit32.module_lua-types.kt b/modules/mod2/dukat-custom/5.2-only.bit32.module_lua-types.kt new file mode 100644 index 0000000..92589f5 --- /dev/null +++ b/modules/mod2/dukat-custom/5.2-only.bit32.module_lua-types.kt @@ -0,0 +1,41 @@ +@file:JsQualifier("bit32") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package bit32 + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun arshift(x: Number, disp: Number): Number + +external fun band(vararg operands: Number): Number + +external fun bnot(x: Number): Number + +external fun bor(vararg operands: Number): Number + +external fun btest(vararg operands: Number): Boolean + +external fun bxor(vararg operands: Number): Number + +external fun extract(n: Number, field: Number, width: Number = definedExternally): Number + +external fun replace(n: Number, v: Number, field: Number, width: Number = definedExternally): Number + +external fun lrotate(x: Number, disp: Number): Number + +external fun lshift(x: Number, disp: Number): Number + +external fun rrotate(x: Number, disp: Number): Number + +external fun rshift(x: Number, disp: Number): Number \ No newline at end of file diff --git a/modules/mod2/dukat-custom/5.2-only.module_lua-types.kt b/modules/mod2/dukat-custom/5.2-only.module_lua-types.kt new file mode 100644 index 0000000..85d3c1e --- /dev/null +++ b/modules/mod2/dukat-custom/5.2-only.module_lua-types.kt @@ -0,0 +1,17 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun collectgarbage(opt: String /* "count" | "generational" | "incremental" */): dynamic /* Unit */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/5.2-plus-or-jit.module_lua-types.kt b/modules/mod2/dukat-custom/5.2-plus-or-jit.module_lua-types.kt new file mode 100644 index 0000000..f68ae03 --- /dev/null +++ b/modules/mod2/dukat-custom/5.2-plus-or-jit.module_lua-types.kt @@ -0,0 +1,37 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun load(chunk: String, chunkname: String = definedExternally, mode: String /* "b" | "t" | "bt" */ = definedExternally, env: Any? = definedExternally): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun load(chunk: String): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun load(chunk: String, chunkname: String = definedExternally): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun load(chunk: String, chunkname: String = definedExternally, mode: String /* "b" | "t" | "bt" */ = definedExternally): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun load(chunk: () -> String?, chunkname: String = definedExternally, mode: String /* "b" | "t" | "bt" */ = definedExternally, env: Any? = definedExternally): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun load(chunk: () -> String?): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun load(chunk: () -> String?, chunkname: String = definedExternally): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun load(chunk: () -> String?, chunkname: String = definedExternally, mode: String /* "b" | "t" | "bt" */ = definedExternally): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun loadfile(filename: String = definedExternally, mode: String /* "b" | "t" | "bt" */ = definedExternally, env: Any? = definedExternally): dynamic /* JsTuple<() -> Any> | JsTuple */ + +external fun , R, E> xpcall(f: (self: This, args: Args) -> R, msgh: (self: Unit, err: Any) -> E, context: This, vararg args: Args): dynamic /* JsTuple | JsTuple */ + +external fun , R, E> xpcall(f: (self: Unit, args: Args) -> R, msgh: (err: Any) -> E, vararg args: Args): dynamic /* JsTuple | JsTuple */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/5.2-plus.module_lua-types.kt b/modules/mod2/dukat-custom/5.2-plus.module_lua-types.kt new file mode 100644 index 0000000..b7e567f --- /dev/null +++ b/modules/mod2/dukat-custom/5.2-plus.module_lua-types.kt @@ -0,0 +1,22 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Record + +external var _ENV: Record + +external fun collectgarbage(opt: String /* "isrunning" */): Boolean + +external fun module(name: String, vararg options: Function<*>) \ No newline at end of file diff --git a/modules/mod2/dukat-custom/builtin-types.module_typed-factorio.kt b/modules/mod2/dukat-custom/builtin-types.module_typed-factorio.kt new file mode 100644 index 0000000..f03d9c3 --- /dev/null +++ b/modules/mod2/dukat-custom/builtin-types.module_typed-factorio.kt @@ -0,0 +1,33 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +typealias float = Number + +typealias double = Number + +typealias int = Number + +typealias int8 = Number + +typealias uint = Number + +typealias uint8 = Number + +typealias uint16 = Number + +typealias uint64 = Number + +typealias table = Any? \ No newline at end of file diff --git a/modules/mod2/dukat-custom/classes.module_typed-factorio.kt b/modules/mod2/dukat-custom/classes.module_typed-factorio.kt new file mode 100644 index 0000000..1f051a8 --- /dev/null +++ b/modules/mod2/dukat-custom/classes.module_typed-factorio.kt @@ -0,0 +1,5723 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Omit +import tsstdlib.Record +import defines.wire_type +import defines.circuit_connector_id +import tsstdlib.Position +import defines.inventory +import defines.direction +import defines.shooting +import defines.gui_type +import defines.control_behavior.type +import defines.rail_direction +import defines.rail_connection_direction +import defines.logistic_member_index +import defines.signal_state +import defines.chain_signal_state +import defines.entity_status +import defines.flow_precision_index +import defines.difficulty +import tsstdlib.Extract +import defines.control_behavior.inserter.circuit_mode_of_operation +import defines.control_behavior.inserter.hand_read_mode +import defines.deconstruction_item.entity_filter_mode +import defines.deconstruction_item.tile_filter_mode +import defines.deconstruction_item.tile_selection_mode +import defines.control_behavior.logistic_container.circuit_mode_of_operation as _defines_control_behavior_logistic_container_circuit_mode_of_operation +import defines.logistic_mode +import defines.control_behavior.mining_drill.resource_read_mode +import defines.input_action +import defines.controllers +import defines.alert_type +import defines.render_mode +import defines.rich_text_setting +import defines.build_check_type +import defines.chunk_generated_status +import defines.train_state +import defines.control_behavior.transport_belt.content_read_mode +import defines.group_state + +external interface LuaAISettings { + var allow_destroy_when_commands_fail: Boolean + var allow_try_return_to_spawner: Boolean + var do_separation: Boolean + var path_resolution_modifier: int8 + var valid: Boolean + var object_name: String /* "LuaAISettings" */ + fun help(): String +} + +external interface LuaAccumulatorControlBehavior : LuaControlBehavior { + var output_signal: SignalID + var valid: Boolean + var object_name: String /* "LuaAccumulatorControlBehavior" */ + fun help(): String +} + +external interface LuaAchievementPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var allowed_without_fight: Boolean + var hidden: Boolean + var valid: Boolean + var object_name: String /* "LuaAchievementPrototype" */ + fun help(): String +} + +external interface LuaAmmoCategoryPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var bonus_gui_order: String + var valid: Boolean + var object_name: String /* "LuaAmmoCategoryPrototype" */ + fun help(): String +} + +external interface LuaArithmeticCombinatorControlBehavior : LuaCombinatorControlBehavior { + var parameters: ArithmeticCombinatorParameters + var valid: Boolean + var object_name: String /* "LuaArithmeticCombinatorControlBehavior" */ + fun help(): String +} + +external interface LuaAutoplaceControlPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var richness: Boolean + var control_order: String + var category: String + var valid: Boolean + var object_name: String /* "LuaAutoplaceControlPrototype" */ + fun help(): String +} + +external interface `T$0` { + var player_index: uint + var message: String +} + +external interface `T$1` { + var item_stack: LuaItemStack + var player_index: uint + var recipe: LuaRecipe +} + +external interface `T$2` { + var player_index: uint + var entity: LuaEntity + var from_player: Boolean +} + +external interface `T$3` { + var entity: LuaEntity +} + +external interface `T$4` { + var player_index: uint + var market: LuaEntity + var offer_index: uint + var count: uint +} + +external interface `T$5` { + var entity: LuaEntity + var tags: Tags? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$6` { + var surface_index: uint + var tiles: Array +} + +external interface `T$7` { + var is_simulation: Boolean? + get() = definedExternally + set(value) = definedExternally + var is_tutorial: Boolean? + get() = definedExternally + set(value) = definedExternally + var campaign_name: String? + get() = definedExternally + set(value) = definedExternally + var level_name: String + var mod_name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaBootstrap { + fun on_init(f: (() -> Unit)?) + fun on_load(f: (() -> Unit)?) + fun on_configuration_changed(f: ((param1: ConfigurationChangedData) -> Unit)?) + fun on_event(event: E, f: ((data: Any) -> Unit)?, filters: Array = definedExternally) + fun on_event(event: E, f: ((data: Any) -> Unit)?) + fun on_event(event: Array, f: ((data: Any) -> Unit)?) + fun on_event(event: String, f: ((data: CustomInputEvent) -> Unit)?) + fun on_nth_tick(tick: uint?, f: ((param1: NthTickEventData) -> Unit)?) + fun on_nth_tick(tick: Array?, f: ((param1: NthTickEventData) -> Unit)?) + fun register_on_entity_destroyed(entity: LuaEntity): uint64 + fun generate_event_name(): uint /* uint & `T$93` */ + fun get_event_handler(event: E): (data: Any) -> Unit + fun get_event_handler(event: String): (data: CustomInputEvent) -> Unit + fun get_event_order(): String + fun set_event_filter(event: E, filters: Array?) + fun get_event_filter(event: E): Array? + fun raise_event(event: E, data: Omit) + fun raise_console_chat(params: `T$0`) + fun raise_player_crafted_item(params: `T$1`) + fun raise_player_fast_transferred(params: `T$2`) + fun raise_biter_base_built(params: `T$3`) + fun raise_market_item_purchased(params: `T$4`) + fun raise_script_built(params: `T$3`) + fun raise_script_destroy(params: `T$3`) + fun raise_script_revive(params: `T$5`) + fun raise_script_set_tiles(params: `T$6`) + var mod_name: String + var level: `T$7` + var active_mods: Record + var object_name: String /* "LuaBootstrap" */ +} + +external interface LuaBurner { + var owner: dynamic /* LuaEntity | LuaEquipment */ + get() = definedExternally + set(value) = definedExternally + var inventory: LuaInventory + var burnt_result_inventory: LuaInventory + var heat: double + var heat_capacity: double + var remaining_burning_fuel: double + var currently_burning: LuaItemPrototype + var fuel_categories: Record + var valid: Boolean + var object_name: String /* "LuaBurner" */ + fun help(): String +} + +external interface `T$8` { + var minimum_intensity: float + var maximum_intensity: float + var derivation_change_frequency: float + var derivation_change_deviation: float + var border_fix_speed: float + var minimum_light_size: float + var light_intensity_to_size_coefficient: float + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaBurnerPrototype { + var emissions: double + var render_no_network_icon: Boolean + var render_no_power_icon: Boolean + var effectivity: double + var fuel_inventory_size: uint + var burnt_inventory_size: uint + var smoke: Array + var light_flicker: `T$8` + var fuel_categories: Record + var valid: Boolean + var object_name: String /* "LuaBurnerPrototype" */ + fun help(): String +} + +external interface LuaChunkIterator : LuaIterable { + @nativeInvoke + operator fun invoke(): ChunkPositionAndArea? + var valid: Boolean + var object_name: String /* "LuaChunkIterator" */ + fun help(): String +} + +external interface LuaCircuitNetwork { + fun get_signal(signal: SignalID): int + var entity: LuaEntity + var wire_type: wire_type + var circuit_connector_id: circuit_connector_id + var signals: Array? + var network_id: uint + var connected_circuit_count: uint + var valid: Boolean + var object_name: String /* "LuaCircuitNetwork" */ + fun help(): String +} + +external interface LuaCombinatorControlBehavior : LuaControlBehavior { + fun get_signal_last_tick(signal: SignalID): int? + var signals_last_tick: Array +} + +external interface LuaCommandProcessor { + fun add_command(name: String, help: Any /* JsTuple */, _function: (param1: CustomCommandData) -> Unit) + fun add_command(name: String, help: String, _function: (param1: CustomCommandData) -> Unit) + fun add_command(name: String, help: Number, _function: (param1: CustomCommandData) -> Unit) + fun remove_command(name: String): Boolean + var commands: Record | String | Number */> + var game_commands: Record | String | Number */> + var object_name: String /* "LuaCommandProcessor" */ +} + +external interface LuaConstantCombinatorControlBehavior : LuaControlBehavior { + fun set_signal(index: uint, signal: Signal) + fun get_signal(index: uint): Signal + var parameters: Array + var enabled: Boolean + var signals_count: uint + var valid: Boolean + var object_name: String /* "LuaConstantCombinatorControlBehavior" */ + fun help(): String +} + +external interface LuaContainerControlBehavior : LuaControlBehavior { + var valid: Boolean + var object_name: String /* "LuaContainerControlBehavior" */ + fun help(): String +} + +external interface BaseControlSetGuiArrow { + var type: String /* "nowhere" | "goal" | "entity_info" | "active_window" | "entity" | "position" | "crafting_queue" | "item_stack" */ +} + +external interface EntityControlSetGuiArrow : BaseControlSetGuiArrow { + override var type: String /* "entity" */ + var entity: LuaEntity +} + +external interface PositionControlSetGuiArrow : BaseControlSetGuiArrow { + override var type: String /* "position" */ + var position: Position +} + +external interface CraftingQueueControlSetGuiArrow : BaseControlSetGuiArrow { + override var type: String /* "crafting_queue" */ + var crafting_queueindex: uint +} + +external interface ItemStackControlSetGuiArrow : BaseControlSetGuiArrow { + override var type: String /* "item_stack" */ + var inventory_index: inventory + var item_stack_index: uint + var source: String /* "player" | "target" */ +} + +external interface OtherControlSetGuiArrow : BaseControlSetGuiArrow { + override var type: String /* "nowhere" | "goal" | "entity_info" | "active_window" */ +} + +external interface `T$9` { + var count: uint + var recipe: dynamic /* String | LuaRecipe */ + get() = definedExternally + set(value) = definedExternally + var silent: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$10` { + var index: uint + var count: uint +} + +external interface `T$11` { + var walking: Boolean + var direction: direction +} + +external interface `T$12` { + var mining: Boolean + var position: Position? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$13` { + var state: shooting + var position: Position +} + +external interface `T$14` { + var repairing: Boolean + var position: Position +} + +external interface LuaControl { + fun get_inventory(inventory: inventory): LuaInventory? + fun get_main_inventory(): LuaInventory? + fun can_insert(items: String): Boolean + fun can_insert(items: ItemStackDefinition): Boolean + fun can_insert(items: LuaItemStack): Boolean + fun insert(items: String): uint + fun insert(items: ItemStackDefinition): uint + fun insert(items: LuaItemStack): uint + fun set_gui_arrow(params: EntityControlSetGuiArrow) + fun set_gui_arrow(params: PositionControlSetGuiArrow) + fun set_gui_arrow(params: CraftingQueueControlSetGuiArrow) + fun set_gui_arrow(params: ItemStackControlSetGuiArrow) + fun set_gui_arrow(params: OtherControlSetGuiArrow) + fun clear_gui_arrow() + fun get_item_count(item: String = definedExternally): uint + fun has_items_inside(): Boolean + fun can_reach_entity(entity: LuaEntity): Boolean + fun clear_items_inside() + fun remove_item(items: String): uint + fun remove_item(items: ItemStackDefinition): uint + fun remove_item(items: LuaItemStack): uint + fun teleport(position: Position, surface: uint = definedExternally): Boolean + fun teleport(position: Position): Boolean + fun teleport(position: Position, surface: String = definedExternally): Boolean + fun teleport(position: Position, surface: LuaSurface = definedExternally): Boolean + fun update_selected_entity(position: Position) + fun clear_selected_entity() + fun disable_flashlight() + fun enable_flashlight() + fun is_flashlight_enabled() + fun get_craftable_count(recipe: String): uint + fun get_craftable_count(recipe: LuaRecipe): uint + fun begin_crafting(params: `T$9`): uint + fun cancel_crafting(params: `T$10`) + fun mine_entity(entity: LuaEntity, force: Boolean = definedExternally): Boolean + fun mine_tile(tile: LuaTile): Boolean + fun is_player(): Boolean + fun open_technology_gui(technology: String = definedExternally) + fun open_technology_gui() + fun open_technology_gui(technology: LuaTechnology = definedExternally) + fun open_technology_gui(technology: LuaTechnologyPrototype = definedExternally) + fun set_personal_logistic_slot(slot_index: uint, value: PersonalLogisticParameters): Boolean + fun set_vehicle_logistic_slot(slot_index: uint, value: PersonalLogisticParameters): Boolean + fun get_personal_logistic_slot(slot_index: uint): PersonalLogisticParameters + fun get_vehicle_logistic_slot(slot_index: uint): PersonalLogisticParameters + fun clear_personal_logistic_slot(slot_index: uint) + fun clear_vehicle_logistic_slot(slot_index: uint) + fun is_cursor_blueprint(): Boolean + fun get_blueprint_entities(): Array? + fun is_cursor_empty(): Boolean + var surface: LuaSurface + var position: PositionTable + var vehicle: LuaEntity? + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var selected: LuaEntity? + var opened: dynamic /* LuaEntity? | LuaItemStack? | LuaEquipment? | LuaEquipmentGrid? | LuaPlayer? | ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers | defines.gui_type? */ + get() = definedExternally + set(value) = definedExternally + var crafting_queue_size: uint + var crafting_queue_progress: double + var walking_state: `T$11` + var riding_state: RidingState + var mining_state: `T$12` + var shooting_state: `T$13` + var picking_state: Boolean + var repair_state: `T$14` + var cursor_stack: LuaItemStack? + var cursor_ghost: dynamic /* LuaItemStack | LuaItemPrototype | String */ + get() = definedExternally + set(value) = definedExternally + var driving: Boolean + var crafting_queue: Array + var following_robots: Array + var cheat_mode: Boolean + var character_crafting_speed_modifier: double + var character_mining_speed_modifier: double + var character_additional_mining_categories: Array + var character_running_speed_modifier: double + var character_build_distance_bonus: uint + var character_item_drop_distance_bonus: uint + var character_reach_distance_bonus: uint + var character_resource_reach_distance_bonus: uint + var character_item_pickup_distance_bonus: uint + var character_loot_pickup_distance_bonus: uint + var character_inventory_slots_bonus: uint + var character_trash_slot_count_bonus: uint + var character_maximum_following_robot_count_bonus: uint + var character_health_bonus: float + var character_personal_logistic_requests_enabled: Boolean + var vehicle_logistic_requests_enabled: Boolean + var opened_gui_type: gui_type? + var build_distance: uint + var drop_item_distance: uint + var reach_distance: uint + var item_pickup_distance: double + var loot_pickup_distance: double + var resource_reach_distance: double + var in_combat: Boolean + var character_running_speed: double + var character_mining_progress: double +} + +external interface LuaControlBehavior { + fun get_circuit_network(wire: wire_type, circuit_connector: circuit_connector_id = definedExternally): LuaCircuitNetwork? + var type: type + var entity: LuaEntity +} + +external interface LuaCustomChartTag { + fun destroy() + var icon: SignalID? + var last_user: LuaPlayer + var position: PositionTable + var text: String + var tag_number: uint + var force: LuaForce + var surface: LuaSurface + var valid: Boolean + var object_name: String /* "LuaCustomChartTag" */ + fun help(): String +} + +external interface LuaCustomInputPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var key_sequence: String + var alternative_key_sequence: String? + var linked_game_control: String? + var consuming: String /* "none" | "game-only" */ + var action: String + var enabled: Boolean + var enabled_while_spectating: Boolean + var enabled_while_in_cutscene: Boolean + var include_selected_prototype: Boolean + var item_to_spawn: LuaItemPrototype? + var valid: Boolean + var object_name: String /* "LuaCustomInputPrototype" */ + fun help(): String +} + +typealias CustomTableIndex = Any + +external interface LuaCustomTableMembers { + var length: () -> uint /* () -> uint & LuaExtension */ + var valid: Boolean + var object_name: String /* "LuaCustomTable" */ + fun help(): String +} + +external interface LuaDamagePrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var hidden: Boolean + var valid: Boolean + var object_name: String /* "LuaDamagePrototype" */ + fun help(): String +} + +external interface LuaDeciderCombinatorControlBehavior : LuaCombinatorControlBehavior { + var parameters: DeciderCombinatorParameters + var valid: Boolean + var object_name: String /* "LuaDeciderCombinatorControlBehavior" */ + fun help(): String +} + +external interface LuaDecorativePrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var collision_box: BoundingBoxTable + var collision_mask: CollisionMask + var collision_mask_with_flags: CollisionMaskWithFlags + var autoplace_specification: AutoplaceSpecification? + var valid: Boolean + var object_name: String /* "LuaDecorativePrototype" */ + fun help(): String +} + +external interface LuaElectricEnergySourcePrototype { + var buffer_capacity: double + var usage_priority: String + var input_flow_limit: double + var output_flow_limit: double + var drain: double + var emissions: double + var render_no_network_icon: Boolean + var render_no_power_icon: Boolean + var valid: Boolean + var object_name: String /* "LuaElectricEnergySourcePrototype" */ + fun help(): String +} + +external interface `T$15` { + var do_cliff_correction: Boolean? + get() = definedExternally + set(value) = definedExternally + var raise_destroy: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$16` { + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var target: dynamic /* LuaEntity | LuaEntityPrototype | String */ + get() = definedExternally + set(value) = definedExternally + var player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var direction: direction? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$17` { + var return_item_request_proxy: Boolean? + get() = definedExternally + set(value) = definedExternally + var raise_revive: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$18` { + var rail_direction: rail_direction + var rail_connection_direction: rail_connection_direction +} + +external interface `T$19` { + var reverse: Boolean? + get() = definedExternally + set(value) = definedExternally + var by_player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var spill_items: Boolean? + get() = definedExternally + set(value) = definedExternally + var enable_looted: Boolean? + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* LuaForce? | String? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$20` { + var position: Position + var surface: LuaSurface? + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally + var create_build_effect_smoke: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$21` { + var name: String + var amount: double + var minimum_temperature: double? + get() = definedExternally + set(value) = definedExternally + var maximum_temperature: double? + get() = definedExternally + set(value) = definedExternally + var temperature: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$22` { + var inventory: LuaInventory? + get() = definedExternally + set(value) = definedExternally + var force: Boolean? + get() = definedExternally + set(value) = definedExternally + var raise_destroyed: Boolean? + get() = definedExternally + set(value) = definedExternally + var ignore_minable: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$23` { + var red: Array + var green: Array +} + +external interface LuaEntity : LuaControl { + fun get_output_inventory(): LuaInventory + fun get_module_inventory(): LuaInventory? + fun get_fuel_inventory(): LuaInventory? + fun get_burnt_result_inventory(): LuaInventory? + fun damage(damage: float, force: String, type: String = definedExternally, dealer: LuaEntity = definedExternally): float + fun damage(damage: float, force: String): float + fun damage(damage: float, force: String, type: String = definedExternally): float + fun damage(damage: float, force: LuaForce, type: String = definedExternally, dealer: LuaEntity = definedExternally): float + fun damage(damage: float, force: LuaForce): float + fun damage(damage: float, force: LuaForce, type: String = definedExternally): float + fun can_be_destroyed(): Boolean + fun destroy(params: `T$15` = definedExternally): Boolean + fun set_command(command: AttackCommand) + fun set_command(command: GoToLocationCommand) + fun set_command(command: CompoundCommand) + fun set_command(command: GroupCommand) + fun set_command(command: AttackAreaCommand) + fun set_command(command: WanderCommand) + fun set_command(command: StopCommand) + fun set_command(command: FleeCommand) + fun set_command(command: BuildBaseCommand) + fun set_distraction_command(command: AttackCommand) + fun set_distraction_command(command: GoToLocationCommand) + fun set_distraction_command(command: CompoundCommand) + fun set_distraction_command(command: GroupCommand) + fun set_distraction_command(command: AttackAreaCommand) + fun set_distraction_command(command: WanderCommand) + fun set_distraction_command(command: StopCommand) + fun set_distraction_command(command: FleeCommand) + fun set_distraction_command(command: BuildBaseCommand) + fun has_command(): Boolean + fun die(force: String = definedExternally, cause: LuaEntity = definedExternally): Boolean + fun die(): Boolean + fun die(force: String = definedExternally): Boolean + fun die(force: LuaForce = definedExternally, cause: LuaEntity = definedExternally): Boolean + fun die(force: LuaForce = definedExternally): Boolean + fun has_flag(flag: String): Boolean + fun ghost_has_flag(flag: String): Boolean + fun add_market_item(offer: Offer) + fun remove_market_item(offer: uint): Boolean + fun get_market_items(): Array + fun clear_market_items() + fun connect_neighbour(target: LuaEntity): Boolean + fun connect_neighbour(target: WireConnectionDefinition): Boolean + fun disconnect_neighbour(target: wire_type = definedExternally) + fun disconnect_neighbour() + fun disconnect_neighbour(target: LuaEntity = definedExternally) + fun disconnect_neighbour(target: WireConnectionDefinition = definedExternally) + fun order_deconstruction(force: String, player: uint = definedExternally): Boolean + fun order_deconstruction(force: String): Boolean + fun order_deconstruction(force: String, player: String = definedExternally): Boolean + fun order_deconstruction(force: String, player: LuaPlayer = definedExternally): Boolean + fun order_deconstruction(force: LuaForce, player: uint = definedExternally): Boolean + fun order_deconstruction(force: LuaForce): Boolean + fun order_deconstruction(force: LuaForce, player: String = definedExternally): Boolean + fun order_deconstruction(force: LuaForce, player: LuaPlayer = definedExternally): Boolean + fun cancel_deconstruction(force: String, player: uint = definedExternally) + fun cancel_deconstruction(force: String) + fun cancel_deconstruction(force: String, player: String = definedExternally) + fun cancel_deconstruction(force: String, player: LuaPlayer = definedExternally) + fun cancel_deconstruction(force: LuaForce, player: uint = definedExternally) + fun cancel_deconstruction(force: LuaForce) + fun cancel_deconstruction(force: LuaForce, player: String = definedExternally) + fun cancel_deconstruction(force: LuaForce, player: LuaPlayer = definedExternally) + fun to_be_deconstructed(): Boolean + fun order_upgrade(params: `T$16`): Boolean + fun cancel_upgrade(force: String, player: uint = definedExternally): Boolean + fun cancel_upgrade(force: String): Boolean + fun cancel_upgrade(force: String, player: String = definedExternally): Boolean + fun cancel_upgrade(force: String, player: LuaPlayer = definedExternally): Boolean + fun cancel_upgrade(force: LuaForce, player: uint = definedExternally): Boolean + fun cancel_upgrade(force: LuaForce): Boolean + fun cancel_upgrade(force: LuaForce, player: String = definedExternally): Boolean + fun cancel_upgrade(force: LuaForce, player: LuaPlayer = definedExternally): Boolean + fun to_be_upgraded(): Boolean + fun get_request_slot(slot: uint): dynamic /* String? | ItemStackDefinition? */ + fun set_request_slot(request: String, slot: uint): Boolean + fun set_request_slot(request: ItemStackDefinition, slot: uint): Boolean + fun set_request_slot(request: LuaItemStack, slot: uint): Boolean + fun clear_request_slot(slot: uint) + fun is_crafting() + fun is_opened(): Boolean + fun is_opening(): Boolean + fun is_closed(): Boolean + fun is_closing(): Boolean + fun request_to_open(force: String, extra_time: uint = definedExternally) + fun request_to_open(force: String) + fun request_to_open(force: LuaForce, extra_time: uint = definedExternally) + fun request_to_open(force: LuaForce) + fun request_to_close(force: String) + fun request_to_close(force: LuaForce) + fun get_transport_line(index: uint): LuaTransportLine + fun get_max_transport_line_index(): uint + fun launch_rocket(): Boolean + fun revive(params: `T$17` = definedExternally): dynamic /* JsTuple | JsTuple, LuaEntity, LuaEntity?> */ + fun silent_revive(params: `T$17` = definedExternally): dynamic /* JsTuple | JsTuple, LuaEntity, LuaEntity?> */ + fun get_connected_rail(params: `T$18`): LuaEntity + fun get_connected_rails(): Array + fun get_rail_segment_entity(direction: rail_direction, in_else_out: Boolean): LuaEntity? + fun get_rail_segment_end(direction: rail_direction): dynamic /* JsTuple */ + fun get_rail_segment_length(): double + fun get_rail_segment_overlaps(): Array + fun get_filter(slot_index: uint): String? + fun set_filter(slot_index: uint, item: String) + fun get_infinity_container_filter(index: uint): InfinityInventoryFilter? + fun set_infinity_container_filter(index: uint, filter: InfinityInventoryFilter?) + fun get_infinity_pipe_filter(): InfinityPipeFilter? + fun set_infinity_pipe_filter(filter: InfinityPipeFilter?) + fun get_heat_setting(): HeatSetting + fun set_heat_setting(filter: HeatSetting) + fun get_control_behavior(): LuaControlBehavior? + fun get_or_create_control_behavior(): LuaControlBehavior? + fun get_circuit_network(wire: wire_type, circuit_connector: circuit_connector_id = definedExternally): LuaCircuitNetwork? + fun get_merged_signal(signal: SignalID, circuit_connector: circuit_connector_id = definedExternally): int + fun get_merged_signals(circuit_connector: circuit_connector_id = definedExternally): Array? + fun supports_backer_name(): Boolean + fun copy_settings(entity: LuaEntity, by_player: uint = definedExternally): Record + fun copy_settings(entity: LuaEntity): Record + fun copy_settings(entity: LuaEntity, by_player: String = definedExternally): Record + fun copy_settings(entity: LuaEntity, by_player: LuaPlayer = definedExternally): Record + fun get_logistic_point(index: logistic_member_index = definedExternally): dynamic /* LuaLogisticPoint | Array */ + fun play_note(instrument: uint, note: uint): Boolean + fun connect_rolling_stock(direction: rail_direction): Boolean + fun disconnect_rolling_stock(direction: rail_direction): Boolean + fun update_connections() + fun get_recipe(): LuaRecipe? + fun set_recipe(recipe: String?): Record + fun set_recipe(recipe: LuaRecipe?): Record + fun rotate(params: `T$19` = definedExternally): Boolean + fun get_driver(): dynamic /* LuaEntity? | LuaPlayer? */ + fun set_driver(driver: LuaEntity?) + fun set_driver(driver: uint?) + fun set_driver(driver: String?) + fun set_driver(driver: LuaPlayer?) + fun get_passenger(): dynamic /* LuaEntity? | LuaPlayer? */ + fun set_passenger(passenger: LuaEntity) + fun set_passenger(passenger: uint) + fun set_passenger(passenger: String) + fun set_passenger(passenger: LuaPlayer) + fun is_connected_to_electric_network(): Boolean + fun get_train_stop_trains(): Array + fun get_stopped_train(): LuaTrain? + fun clone(params: `T$20`): LuaEntity? + fun get_fluid_count(fluid: String = definedExternally): double + fun get_fluid_contents(): Record + fun remove_fluid(params: `T$21`): double + fun insert_fluid(fluid: Fluid): double + fun clear_fluid_inside() + fun get_beam_source(): BeamTarget + fun set_beam_source(source: LuaEntity) + fun set_beam_source(source: Position) + fun get_beam_target(): BeamTarget + fun set_beam_target(target: LuaEntity) + fun set_beam_target(target: Position) + fun get_radius(): double + fun get_health_ratio(): float + fun create_build_effect_smoke() + fun release_from_spawner() + fun toggle_equipment_movement_bonus() + fun can_shoot(target: LuaEntity, position: Position): Boolean + fun start_fading_out() + fun get_upgrade_target(): LuaEntityPrototype? + fun get_upgrade_direction(): direction? + fun get_damage_to_be_taken(): float + fun deplete() + fun mine(params: `T$22` = definedExternally): Boolean + fun spawn_decorations() + fun can_wires_reach(entity: LuaEntity): Boolean + fun get_connected_rolling_stock(direction: rail_direction): LuaEntity + fun is_registered_for_construction(): Boolean + fun is_registered_for_deconstruction(force: String): Boolean + fun is_registered_for_deconstruction(force: LuaForce): Boolean + fun is_registered_for_upgrade(): Boolean + fun is_registered_for_repair(): Boolean + fun add_autopilot_destination(position: Position) + fun connect_linked_belts(neighbour: LuaEntity?) + fun disconnect_linked_belts() + var name: String /* "inserter" | "filter-inserter" */ + var ghost_name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var ghost_localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var ghost_localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var type: String + var ghost_type: String + var active: Boolean + var destructible: Boolean + var minable: Boolean + var rotatable: Boolean + var operable: Boolean + var health: float? + var direction: direction + var supports_direction: Boolean + var orientation: RealOrientation + var cliff_orientation: String /* "west-to-east" | "north-to-south" | "east-to-west" | "south-to-north" | "west-to-north" | "north-to-east" | "east-to-south" | "south-to-west" | "west-to-south" | "north-to-west" | "east-to-north" | "south-to-east" | "west-to-none" | "none-to-east" | "east-to-none" | "none-to-west" | "north-to-none" | "none-to-south" | "south-to-none" | "none-to-north" */ + var relative_turret_orientation: RealOrientation? + var torso_orientation: RealOrientation + var amount: uint + var initial_amount: uint? + var effectivity_modifier: float + var consumption_modifier: float + var friction_modifier: float + var driver_is_gunner: Boolean + var vehicle_automatic_targeting_parameters: VehicleAutomaticTargetingParameters + var speed: float + var effective_speed: float + var stack: LuaItemStack + var prototype: LuaEntityPrototype + var ghost_prototype: dynamic /* LuaEntityPrototype | LuaTilePrototype */ + get() = definedExternally + set(value) = definedExternally + var drop_position: Position + var pickup_position: Position + var drop_target: LuaEntity? + var pickup_target: LuaEntity + var selected_gun_index: uint? + var energy: double + var temperature: double? + var previous_recipe: LuaRecipe? + var held_stack: LuaItemStack + var held_stack_position: PositionTable + var train: LuaTrain? + var neighbours: dynamic /* Record>? | Array>? | LuaEntity? */ + get() = definedExternally + set(value) = definedExternally + var belt_neighbours: Record> + var fluidbox: LuaFluidBox + var backer_name: String? + var entity_label: String? + var time_to_live: uint + var color: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var text: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var signal_state: signal_state + var chain_signal_state: chain_signal_state + var to_be_looted: Boolean + var crafting_speed: double + var crafting_progress: float + var bonus_progress: double + var productivity_bonus: double + var pollution_bonus: double + var speed_bonus: double + var consumption_bonus: double + var belt_to_ground_type: String /* "input" | "output" */ + var loader_type: String /* "input" | "output" */ + var rocket_parts: uint + var logistic_network: LuaLogisticNetwork + var logistic_cell: LuaLogisticCell? + var item_requests: Record + var player: LuaPlayer? + var unit_group: LuaUnitGroup? + var damage_dealt: double + var kills: uint + var last_user: LuaPlayer? + var electric_buffer_size: double? + var electric_input_flow_limit: double? + var electric_output_flow_limit: double? + var electric_drain: double? + var electric_emissions: double? + var unit_number: uint? + var ghost_unit_number: uint? + var mining_progress: double? + var bonus_mining_progress: double? + var power_production: double + var power_usage: double + var bounding_box: BoundingBoxTable + var secondary_bounding_box: BoundingBoxTable? + var selection_box: BoundingBoxTable + var secondary_selection_box: BoundingBoxTable? + var mining_target: LuaEntity? + var circuit_connected_entities: `T$23` + var circuit_connection_definitions: Array + var request_slot_count: uint + var filter_slot_count: uint + var loader_container: LuaEntity + var grid: LuaEquipmentGrid? + var graphics_variation: uint8? + var tree_color_index: uint8 + var tree_color_index_max: uint8 + var tree_stage_index: uint8 + var tree_stage_index_max: uint8 + var tree_gray_stage_index: uint8 + var tree_gray_stage_index_max: uint8 + var burner: LuaBurner? + var shooting_target: LuaEntity? + var proxy_target: LuaEntity? + var stickers: Array? + var sticked_to: LuaEntity + var parameters: ProgrammableSpeakerParameters + var alert_parameters: ProgrammableSpeakerAlertParameters + var electric_network_statistics: LuaFlowStatistics + var inserter_stack_size_override: uint + var products_finished: uint + var spawner: LuaEntity? + var units: Array + var power_switch_state: Boolean + var effects: ModuleEffects? + var infinity_container_filters: Array + var remove_unfiltered_items: Boolean + var character_corpse_player_index: uint + var character_corpse_tick_of_death: uint + var character_corpse_death_cause: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var associated_player: LuaPlayer? + var tick_of_last_attack: uint + var tick_of_last_damage: uint + var splitter_filter: LuaItemPrototype? + var inserter_filter_mode: String /* "whitelist" | "blacklist" */ + var splitter_input_priority: String /* "left" | "none" | "right" */ + var splitter_output_priority: String /* "left" | "none" | "right" */ + var armed: Boolean + var recipe_locked: Boolean + var connected_rail: LuaEntity? + var trains_in_block: uint + var timeout: uint + var neighbour_bonus: double + var ai_settings: LuaAISettings + var highlight_box_type: String + var highlight_box_blink_interval: uint + var status: entity_status? + var enable_logistics_while_moving: Boolean + var render_player: LuaPlayer? + var render_to_forces: Array? + var pump_rail_target: LuaEntity? + var moving: Boolean + var electric_network_id: uint? + var allow_dispatching_robots: Boolean + var auto_launch: Boolean + var energy_generated_last_tick: double + var storage_filter: LuaItemPrototype + var request_from_buffers: Boolean + var corpse_expires: Boolean + var corpse_immune_to_entity_placement: Boolean + var tags: Tags? + var command: dynamic /* AttackCommand? | GoToLocationCommand? | CompoundCommand? | GroupCommand? | AttackAreaCommand? | WanderCommand? | StopCommand? | FleeCommand? | BuildBaseCommand? */ + get() = definedExternally + set(value) = definedExternally + var distraction_command: dynamic /* AttackCommand? | GoToLocationCommand? | CompoundCommand? | GroupCommand? | AttackAreaCommand? | WanderCommand? | StopCommand? | FleeCommand? | BuildBaseCommand? */ + get() = definedExternally + set(value) = definedExternally + var time_to_next_effect: uint + var autopilot_destination: Position? + var autopilot_destinations: Array + var trains_count: uint? + var trains_limit: uint + var is_entity_with_force: Boolean + var is_entity_with_owner: Boolean + var is_entity_with_health: Boolean + var combat_robot_owner: LuaEntity + var link_id: uint + var follow_target: LuaEntity + var follow_offset: Position? + var linked_belt_type: String /* "input" | "output" */ + var linked_belt_neighbour: LuaEntity? + var valid: Boolean + var object_name: String /* "LuaEntity" */ + fun help(): String +} + +external interface `T$24` { + var minable: Boolean + var mining_time: double + var mining_particle: String? + get() = definedExternally + set(value) = definedExternally + var products: Array? + get() = definedExternally + set(value) = definedExternally + var fluid_amount: double? + get() = definedExternally + set(value) = definedExternally + var required_fluid: String? + get() = definedExternally + set(value) = definedExternally + var mining_trigger: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$25` { + var min: double + var max: double +} + +external interface `T$26` { + var smoke_name: String + var offsets: Array + var offset_deviation: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var initial_height: float + var max_radius: float? + get() = definedExternally + set(value) = definedExternally + var speed: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var speed_multiplier: float + var speed_multiplier_deviation: float + var starting_frame: float + var starting_frame_deviation: float + var starting_frame_speed: float + var starting_frame_speed_deviation: float + var speed_from_center: float + var speed_from_center_deviation: float +} + +external interface LuaEntityPrototype { + fun has_flag(flag: String /* "not-rotatable" | "placeable-neutral" | "placeable-player" | "placeable-enemy" | "placeable-off-grid" | "player-creation" | "filter-directions" | "fast-replaceable-no-build-while-moving" | "breaths-air" | "not-repairable" | "not-on-map" | "not-deconstructable" | "not-blueprintable" | "hide-from-bonus-gui" | "hide-alt-info" | "fast-replaceable-no-cross-type-while-moving" | "no-gap-fill-while-building" | "not-flammable" | "no-automated-item-removal" | "no-automated-item-insertion" | "not-upgradable" */): Boolean + fun get_inventory_size(index: inventory): uint? + var type: String + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var max_health: float + var infinite_resource: Boolean? + var minimum_resource_amount: uint? + var normal_resource_amount: uint? + var infinite_depletion_resource_amount: uint? + var resource_category: String? + var mineable_properties: `T$24` + var items_to_place_this: Array? + var collision_box: BoundingBoxTable + var secondary_collision_box: BoundingBoxTable? + var map_generator_bounding_box: BoundingBoxTable + var selection_box: BoundingBoxTable + var drawing_box: BoundingBoxTable + var sticker_box: BoundingBoxTable + var collision_mask: CollisionMask + var collision_mask_with_flags: CollisionMaskWithFlags + var default_collision_mask_with_flags: CollisionMaskWithFlags + var order: String + var group: LuaGroup + var subgroup: LuaGroup + var healing_per_tick: float + var emissions_per_second: double + var corpses: Record + var selectable_in_game: Boolean + var selection_priority: uint + var weight: double? + var resistances: Record + var fast_replaceable_group: String? + var next_upgrade: LuaEntityPrototype? + var loot: Array? + var repair_speed_modifier: uint? + var turret_range: uint? + var autoplace_specification: AutoplaceSpecification? + var belt_speed: double? + var result_units: Array + var attack_result: Array? + var final_attack_result: Array? + var attack_parameters: dynamic /* ProjectileAttackParameters? | StreamAttackParameters? | OtherAttackParameters? */ + get() = definedExternally + set(value) = definedExternally + var spawn_cooldown: `T$25`? + var mining_drill_radius: double? + var mining_speed: double? + var logistic_mode: String /* "requester" | "active-provider" | "passive-provider" | "buffer" | "storage" | "none" */ + var max_underground_distance: uint8? + var flags: EntityPrototypeFlags + var remains_when_mined: Array + var additional_pastable_entities: Array + var allow_copy_paste: Boolean + var shooting_cursor_size: double + var created_smoke: `T$26`? + var created_effect: Array? + var map_color: ColorTable? + var friendly_map_color: ColorTable + var enemy_map_color: ColorTable + var build_base_evolution_requirement: double + var instruments: Array? + var max_polyphony: uint? + var module_inventory_size: uint? + var ingredient_count: uint? + var crafting_speed: double? + var crafting_categories: Record + var resource_categories: Record? + var supply_area_distance: double? + var max_wire_distance: double + var max_circuit_wire_distance: double + var energy_usage: double? + var max_energy_usage: double + var max_energy_production: double + var effectivity: double? + var consumption: double? + var friction_force: double? + var braking_force: double? + var air_resistance: double? + var tank_driving: Boolean? + var rotation_speed: double? + var turret_rotation_speed: double? + var guns: Record? + var speed: double? + var speed_multiplier_when_out_of_energy: float? + var max_payload_size: uint? + var draw_cargo: Boolean? + var energy_per_move: double? + var energy_per_tick: double? + var max_energy: double? + var min_to_charge: float? + var max_to_charge: float? + var burner_prototype: LuaBurnerPrototype? + var electric_energy_source_prototype: LuaElectricEnergySourcePrototype? + var heat_energy_source_prototype: LuaHeatEnergySourcePrototype? + var fluid_energy_source_prototype: LuaFluidEnergySourcePrototype? + var void_energy_source_prototype: LuaVoidEnergySourcePrototype? + var building_grid_bit_shift: uint + var fluid_usage_per_tick: double? + var maximum_temperature: double? + var target_temperature: double? + var fluid: LuaFluidPrototype? + var fluid_capacity: double + var pumping_speed: double? + var stack: Boolean + var allow_custom_vectors: Boolean + var allow_burner_leech: Boolean + var inserter_extension_speed: double? + var inserter_rotation_speed: double? + var inserter_pickup_position: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var inserter_drop_position: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var inserter_chases_belt_items: Boolean? + var count_as_rock_for_filtered_deconstruction: Boolean + var filter_count: uint? + var time_to_live: uint + var distribution_effectivity: double? + var explosion_beam: double? + var explosion_rotate: double? + var tree_color_count: uint8? + var alert_when_damaged: Boolean? + var alert_when_attacking: Boolean? + var color: ColorTable? + var collision_mask_collides_with_self: Boolean + var collision_mask_collides_with_tiles_only: Boolean + var collision_mask_considers_tile_transitions: Boolean + var allowed_effects: Record? + var rocket_parts_required: uint? + var rocket_rising_delay: uint8? + var launch_wait_time: uint8? + var light_blinking_speed: double? + var door_opening_speed: double? + var rising_speed: double? + var engine_starting_speed: double? + var flying_speed: double? + var flying_acceleration: double? + var fixed_recipe: String? + var construction_radius: double? + var logistic_radius: double? + var energy_per_hit_point: double? + var create_ghost_on_death: Boolean + var timeout: uint + var fluidbox_prototypes: Array + var neighbour_bonus: double + var neighbour_collision_increase: double + var container_distance: double + var belt_distance: double + var belt_length: double + var is_building: Boolean + var automated_ammo_count: uint? + var max_speed: double? + var darkness_for_all_lamps_on: float? + var darkness_for_all_lamps_off: float? + var always_on: Boolean? + var min_darkness_to_spawn: float + var max_darkness_to_spawn: float + var call_for_help_radius: double + var max_count_of_owned_units: double + var max_friends_around_to_spawn: double + var spawning_radius: double + var spawning_spacing: double + var radius: double + var cliff_explosive_prototype: String? + var rocket_entity_prototype: LuaEntityPrototype? + var has_belt_immunity: Boolean? + var vision_distance: double? + var pollution_to_join_attack: float? + var min_pursue_time: uint? + var max_pursue_distance: double? + var radar_range: uint? + var move_while_shooting: Boolean? + var can_open_gates: Boolean? + var affected_by_tiles: Boolean? + var distraction_cooldown: uint? + var spawning_time_modifier: double? + var alert_icon_shift: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var lab_inputs: Array? + var researching_speed: double? + var item_slot_count: uint? + var base_productivity: double? + var allow_access_to_all_forces: Boolean + var supports_direction: Boolean + var terrain_friction_modifier: float + var allow_passengers: Boolean + var max_distance_of_sector_revealed: uint + var max_distance_of_nearby_sector_revealed: uint + var adjacent_tile_collision_box: BoundingBoxTable + var adjacent_tile_collision_mask: CollisionMask + var adjacent_tile_collision_test: CollisionMask + var center_collision_mask: CollisionMask + var grid_prototype: LuaEquipmentGridPrototype? + var remove_decoratives: String + var related_underground_belt: LuaEntityPrototype + var running_speed: double + var maximum_corner_sliding_distance: double + var build_distance: uint + var drop_item_distance: uint + var reach_distance: uint + var reach_resource_distance: double + var item_pickup_distance: double + var loot_pickup_distance: double + var enter_vehicle_distance: double + var ticks_to_keep_gun: uint + var ticks_to_keep_aiming_direction: uint + var ticks_to_stay_in_combat: uint + var respawn_time: uint + var damage_hit_tint: ColorTable + var character_corpse: LuaEntityPrototype + var valid: Boolean + var object_name: String /* "LuaEntityPrototype" */ + fun help(): String +} + +external interface `T$27` { + var width: uint + var height: uint +} + +external interface LuaEquipment { + var name: String + var type: String + var position: PositionTable + var shape: `T$27` + var shield: double + var max_shield: double + var max_solar_power: double + var movement_bonus: double + var generator_power: double + var energy: double + var max_energy: double + var prototype: LuaEquipmentPrototype + var burner: LuaBurner? + var valid: Boolean + var object_name: String /* "LuaEquipment" */ + fun help(): String +} + +external interface LuaEquipmentCategoryPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaEquipmentCategoryPrototype" */ + fun help(): String +} + +external interface `T$28` { + var position: Position? + get() = definedExternally + set(value) = definedExternally + var equipment: LuaEquipment? + get() = definedExternally + set(value) = definedExternally + var by_player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$29` { + var name: String + var position: Position? + get() = definedExternally + set(value) = definedExternally + var by_player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$30` { + var equipment: LuaEquipment + var position: Position +} + +external interface LuaEquipmentGrid { + fun take(params: `T$28`): dynamic /* String? | ItemStackDefinition? */ + fun take_all(by_player: uint = definedExternally): Record + fun take_all(): Record + fun take_all(by_player: String = definedExternally): Record + fun take_all(by_player: LuaPlayer = definedExternally): Record + fun clear(by_player: uint = definedExternally) + fun clear() + fun clear(by_player: String = definedExternally) + fun clear(by_player: LuaPlayer = definedExternally) + fun put(params: `T$29`): LuaEquipment? + fun can_move(params: `T$30`): Boolean + fun move(params: `T$30`): Boolean + fun get(position: Position): LuaEquipment? + fun get_contents(): Record + var prototype: LuaEquipmentGridPrototype + var width: uint + var height: uint + var equipment: Array + var generator_energy: double + var max_solar_energy: double + var available_in_batteries: double + var battery_capacity: double + var shield: float + var max_shield: float + var inhibit_movement_bonus: Boolean + var valid: Boolean + var object_name: String /* "LuaEquipmentGrid" */ + fun help(): String +} + +external interface LuaEquipmentGridPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var equipment_categories: Array + var width: uint + var height: uint + var locked: Boolean + var valid: Boolean + var object_name: String /* "LuaEquipmentGridPrototype" */ + fun help(): String +} + +external interface `T$31` { + var width: uint + var height: uint + var points: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$32` { + var spawn_and_station_height: float + var spawn_and_station_shadow_height_offset: float + var charge_approach_distance: float + var logistic_radius: float + var construction_radius: float + var charging_station_count: uint + var charging_distance: float + var charging_station_shift: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var charging_energy: double + var charging_threshold_distance: float + var robot_vertical_acceleration: float + var stationing_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var robot_limit: uint + var logistics_connection_distance: float + var robots_shrink_when_entering_and_exiting: Boolean +} + +external interface LuaEquipmentPrototype { + var name: String + var type: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var shape: `T$31` + var take_result: LuaItemPrototype? + var energy_production: double + var shield: float + var energy_per_shield: double + var logistic_parameters: `T$32` + var energy_consumption: double + var movement_bonus: float + var energy_source: LuaElectricEnergySourcePrototype + var equipment_categories: Array + var burner_prototype: LuaBurnerPrototype? + var electric_energy_source_prototype: LuaElectricEnergySourcePrototype? + var background_color: ColorTable + var attack_parameters: dynamic /* ProjectileAttackParameters? | StreamAttackParameters? | OtherAttackParameters? */ + get() = definedExternally + set(value) = definedExternally + var automatic: Boolean + var valid: Boolean + var object_name: String /* "LuaEquipmentPrototype" */ + fun help(): String +} + +external interface `T$33` { + var name: String + var input: Boolean + var precision_index: flow_precision_index + var count: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaFlowStatistics { + fun get_input_count(name: String): dynamic /* uint64 | double */ + fun set_input_count(name: String, count: uint64) + fun get_output_count(name: String): dynamic /* uint64 | double */ + fun set_output_count(name: String, count: uint64) + fun get_flow_count(params: `T$33`): double + fun on_flow(name: String, count: float) + fun clear() + var input_counts: Record + var output_counts: Record + var force: LuaForce? + var valid: Boolean + var object_name: String /* "LuaFlowStatistics" */ + fun help(): String +} + +typealias LuaFluidBox = Array + +external interface LuaFluidBoxPrototype { + var entity: LuaEntityPrototype + var index: uint + var pipe_connections: Array + var production_type: String /* "input" | "output" | "input-output" | "none" */ + var base_area: double + var base_level: double + var height: double + var volume: double + var filter: LuaFluidPrototype? + var minimum_temperature: double? + var maximum_temperature: double? + var secondary_draw_orders: Array + var render_layer: String + var valid: Boolean + var object_name: String /* "LuaFluidBoxPrototype" */ + fun help(): String +} + +external interface LuaFluidEnergySourcePrototype { + var emissions: double + var render_no_network_icon: Boolean + var render_no_power_icon: Boolean + var effectivity: double + var burns_fluid: Boolean + var scale_fluid_usage: Boolean + var fluid_usage_per_tick: double + var smoke: Array + var maximum_temperature: double + var fluid_box: LuaFluidBoxPrototype + var valid: Boolean + var object_name: String /* "LuaFluidEnergySourcePrototype" */ + fun help(): String +} + +external interface LuaFluidPrototype { + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var default_temperature: double + var max_temperature: double + var heat_capacity: double + var order: String + var group: LuaGroup + var subgroup: LuaGroup + var base_color: ColorTable + var flow_color: ColorTable + var gas_temperature: double + var emissions_multiplier: double + var fuel_value: double + var hidden: Boolean + var valid: Boolean + var object_name: String /* "LuaFluidPrototype" */ + fun help(): String +} + +external interface LuaFontPrototype { + var name: String + var from: String + var size: int + var spacing: float + var border: Boolean + var filtered: Boolean + var border_color: ColorTable? + var valid: Boolean + var object_name: String /* "LuaFontPrototype" */ + fun help(): String +} + +external interface `T$34` { + var path: dynamic /* String | */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var volume_modifier: double? + get() = definedExternally + set(value) = definedExternally + var override_sound_type: String? /* "game-effect" | "gui-effect" | "ambient" | "environment" | "walking" | "alert" | "wind" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$35` { + var name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaForce { + fun get_entity_count(name: String): uint + fun disable_research() + fun enable_research() + fun disable_all_prototypes() + fun enable_all_prototypes() + fun reset_recipes() + fun enable_all_recipes() + fun enable_all_technologies() + fun research_all_technologies(include_disabled_prototypes: Boolean = definedExternally) + fun reset_technologies() + fun reset() + fun reset_technology_effects() + fun chart(surface: uint, area: BoundingBoxTable) + fun chart(surface: uint, area: Any /* JsTuple */) + fun chart(surface: String, area: BoundingBoxTable) + fun chart(surface: String, area: Any /* JsTuple */) + fun chart(surface: LuaSurface, area: BoundingBoxTable) + fun chart(surface: LuaSurface, area: Any /* JsTuple */) + fun clear_chart(surface: uint = definedExternally) + fun clear_chart() + fun clear_chart(surface: String = definedExternally) + fun clear_chart(surface: LuaSurface = definedExternally) + fun rechart() + fun chart_all(surface: uint = definedExternally) + fun chart_all() + fun chart_all(surface: String = definedExternally) + fun chart_all(surface: LuaSurface = definedExternally) + fun is_chunk_charted(surface: uint, position: ChunkPositionTable): Boolean + fun is_chunk_charted(surface: uint, position: Any /* JsTuple */): Boolean + fun is_chunk_charted(surface: String, position: ChunkPositionTable): Boolean + fun is_chunk_charted(surface: String, position: Any /* JsTuple */): Boolean + fun is_chunk_charted(surface: LuaSurface, position: ChunkPositionTable): Boolean + fun is_chunk_charted(surface: LuaSurface, position: Any /* JsTuple */): Boolean + fun is_chunk_visible(surface: uint, position: ChunkPositionTable): Boolean + fun is_chunk_visible(surface: uint, position: Any /* JsTuple */): Boolean + fun is_chunk_visible(surface: String, position: ChunkPositionTable): Boolean + fun is_chunk_visible(surface: String, position: Any /* JsTuple */): Boolean + fun is_chunk_visible(surface: LuaSurface, position: ChunkPositionTable): Boolean + fun is_chunk_visible(surface: LuaSurface, position: Any /* JsTuple */): Boolean + fun cancel_charting(surface: uint = definedExternally) + fun cancel_charting() + fun cancel_charting(surface: String = definedExternally) + fun cancel_charting(surface: LuaSurface = definedExternally) + fun get_ammo_damage_modifier(ammo: String): double + fun set_ammo_damage_modifier(ammo: String, modifier: double) + fun get_gun_speed_modifier(ammo: String): double + fun set_gun_speed_modifier(ammo: String, modifier: double) + fun get_turret_attack_modifier(turret: String): double + fun set_turret_attack_modifier(turret: String, modifier: double) + fun set_cease_fire(other: String, cease_fire: Boolean) + fun set_cease_fire(other: LuaForce, cease_fire: Boolean) + fun get_cease_fire(other: String): Boolean + fun get_cease_fire(other: LuaForce): Boolean + fun set_friend(other: String, friend: Boolean) + fun set_friend(other: LuaForce, friend: Boolean) + fun get_friend(other: String): Boolean + fun get_friend(other: LuaForce): Boolean + fun is_pathfinder_busy(): Boolean + fun kill_all_units() + fun find_logistic_network_by_position(position: Position, surface: uint): LuaLogisticNetwork? + fun find_logistic_network_by_position(position: Position, surface: String): LuaLogisticNetwork? + fun find_logistic_network_by_position(position: Position, surface: LuaSurface): LuaLogisticNetwork? + fun set_spawn_position(position: Position, surface: uint) + fun set_spawn_position(position: Position, surface: String) + fun set_spawn_position(position: Position, surface: LuaSurface) + fun get_spawn_position(surface: uint): PositionTable + fun get_spawn_position(surface: String): PositionTable + fun get_spawn_position(surface: LuaSurface): PositionTable + fun unchart_chunk(position: ChunkPositionTable, surface: uint) + fun unchart_chunk(position: ChunkPositionTable, surface: String) + fun unchart_chunk(position: ChunkPositionTable, surface: LuaSurface) + fun unchart_chunk(position: Any /* JsTuple */, surface: uint) + fun unchart_chunk(position: Any /* JsTuple */, surface: String) + fun unchart_chunk(position: Any /* JsTuple */, surface: LuaSurface) + fun get_item_launched(item: String): uint + fun set_item_launched(item: String, count: uint) + fun print(message: Any /* JsTuple */, color: ColorTable = definedExternally) + fun print(message: Any /* JsTuple */) + fun print(message: Any /* JsTuple */, color: Any /* JsTuple */ = definedExternally) + fun print(message: String, color: ColorTable = definedExternally) + fun print(message: String) + fun print(message: String, color: Any /* JsTuple */ = definedExternally) + fun print(message: Number, color: ColorTable = definedExternally) + fun print(message: Number) + fun print(message: Number, color: Any /* JsTuple */ = definedExternally) + fun get_trains(surface: uint = definedExternally): Array + fun get_trains(): Array + fun get_trains(surface: String = definedExternally): Array + fun get_trains(surface: LuaSurface = definedExternally): Array + fun add_chart_tag(surface: uint, tag: ChartTagSpec): LuaCustomChartTag? + fun add_chart_tag(surface: String, tag: ChartTagSpec): LuaCustomChartTag? + fun add_chart_tag(surface: LuaSurface, tag: ChartTagSpec): LuaCustomChartTag? + fun find_chart_tags(surface: uint, area: BoundingBoxTable = definedExternally): Array + fun find_chart_tags(surface: uint): Array + fun find_chart_tags(surface: uint, area: Any /* JsTuple */ = definedExternally): Array + fun find_chart_tags(surface: String, area: BoundingBoxTable = definedExternally): Array + fun find_chart_tags(surface: String): Array + fun find_chart_tags(surface: String, area: Any /* JsTuple */ = definedExternally): Array + fun find_chart_tags(surface: LuaSurface, area: BoundingBoxTable = definedExternally): Array + fun find_chart_tags(surface: LuaSurface): Array + fun find_chart_tags(surface: LuaSurface, area: Any /* JsTuple */ = definedExternally): Array + fun get_saved_technology_progress(technology: String): double? + fun get_saved_technology_progress(technology: LuaTechnology): double? + fun get_saved_technology_progress(technology: LuaTechnologyPrototype): double? + fun set_saved_technology_progress(technology: String, progress: double?) + fun set_saved_technology_progress(technology: LuaTechnology, progress: double?) + fun set_saved_technology_progress(technology: LuaTechnologyPrototype, progress: double?) + fun reset_evolution() + fun play_sound(params: `T$34`) + fun get_train_stops(params: `T$35` = definedExternally): Array + fun get_hand_crafting_disabled_for_recipe(recipe: String): Boolean + fun get_hand_crafting_disabled_for_recipe(recipe: LuaRecipe): Boolean + fun set_hand_crafting_disabled_for_recipe(recipe: String, hand_crafting_disabled: Boolean) + fun set_hand_crafting_disabled_for_recipe(recipe: LuaRecipe, hand_crafting_disabled: Boolean) + fun add_research(technology: String): Boolean + fun add_research(technology: LuaTechnology): Boolean + fun add_research(technology: LuaTechnologyPrototype): Boolean + fun cancel_current_research() + fun get_linked_inventory(prototype: LuaEntity, link_id: uint): LuaInventory? + fun get_linked_inventory(prototype: LuaEntityPrototype, link_id: uint): LuaInventory? + fun get_linked_inventory(prototype: String, link_id: uint): LuaInventory? + fun is_friend(other: String): Boolean + fun is_friend(other: LuaForce): Boolean + fun is_enemy(other: String): Boolean + fun is_enemy(other: LuaForce): Boolean + var name: String + var technologies: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var recipes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var manual_mining_speed_modifier: double + var manual_crafting_speed_modifier: double + var laboratory_speed_modifier: double + var laboratory_productivity_bonus: double + var worker_robots_speed_modifier: double + var worker_robots_battery_modifier: double + var worker_robots_storage_bonus: double + var current_research: LuaTechnology? + var research_progress: double + var previous_research: LuaTechnology + var inserter_stack_size_bonus: double + var stack_inserter_capacity_bonus: uint + var character_trash_slot_count: double + var maximum_following_robot_count: uint + var following_robots_lifetime_modifier: double + var ghost_time_to_live: uint + var players: Array + var ai_controllable: Boolean + var logistic_networks: Record> + var item_production_statistics: LuaFlowStatistics + var fluid_production_statistics: LuaFlowStatistics + var kill_count_statistics: LuaFlowStatistics + var entity_build_count_statistics: LuaFlowStatistics + var character_running_speed_modifier: double + var artillery_range_modifier: double + var character_build_distance_bonus: uint + var character_item_drop_distance_bonus: uint + var character_reach_distance_bonus: uint + var character_resource_reach_distance_bonus: double + var character_item_pickup_distance_bonus: double + var character_loot_pickup_distance_bonus: double + var character_inventory_slots_bonus: uint + var deconstruction_time_to_live: uint + var character_health_bonus: double + var max_successful_attempts_per_tick_per_construction_queue: uint + var max_failed_attempts_per_tick_per_construction_queue: uint + var zoom_to_world_enabled: Boolean + var zoom_to_world_ghost_building_enabled: Boolean + var zoom_to_world_blueprint_enabled: Boolean + var zoom_to_world_deconstruction_planner_enabled: Boolean + var zoom_to_world_selection_tool_enabled: Boolean + var character_logistic_requests: Boolean + var rockets_launched: uint + var items_launched: Record + var connected_players: Array + var mining_drill_productivity_bonus: double + var train_braking_force_bonus: double + var evolution_factor: double + var evolution_factor_by_pollution: double + var evolution_factor_by_time: double + var evolution_factor_by_killing_spawners: double + var friendly_fire: Boolean + var share_chart: Boolean + var research_queue_enabled: Boolean + var index: uint + var research_queue: Array? + var research_enabled: Boolean + var valid: Boolean + var object_name: String /* "LuaForce" */ + fun help(): String +} + +external interface LuaFuelCategoryPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaFuelCategoryPrototype" */ + fun help(): String +} + +external interface `T$36` { + var game_finished: Boolean + var player_won: Boolean + var next_level: String + var can_continue: Boolean + var victorious_force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$37` { + var text: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var image: String? + get() = definedExternally + set(value) = definedExternally + var point_to: dynamic /* EntityGuiArrowSpecification? | PositionGuiArrowSpecification? | CraftingQueueGuiArrowSpecification? | ItemStackGuiArrowSpecification? | OtherGuiArrowSpecification? */ + get() = definedExternally + set(value) = definedExternally + var style: String? + get() = definedExternally + set(value) = definedExternally + var wrapper_frame_style: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$38` { + var player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var by_player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var resolution: Position? + get() = definedExternally + set(value) = definedExternally + var zoom: double? + get() = definedExternally + set(value) = definedExternally + var path: String? + get() = definedExternally + set(value) = definedExternally + var show_gui: Boolean? + get() = definedExternally + set(value) = definedExternally + var show_entity_info: Boolean? + get() = definedExternally + set(value) = definedExternally + var show_cursor_building_preview: Boolean? + get() = definedExternally + set(value) = definedExternally + var anti_alias: Boolean? + get() = definedExternally + set(value) = definedExternally + var quality: int? + get() = definedExternally + set(value) = definedExternally + var allow_in_replay: Boolean? + get() = definedExternally + set(value) = definedExternally + var daytime: double? + get() = definedExternally + set(value) = definedExternally + var water_tick: uint? + get() = definedExternally + set(value) = definedExternally + var force_render: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$39` { + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally + var path: String? + get() = definedExternally + set(value) = definedExternally + var by_player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var selected_technology: dynamic /* String? | LuaTechnology? | LuaTechnologyPrototype? */ + get() = definedExternally + set(value) = definedExternally + var skip_disabled: Boolean? + get() = definedExternally + set(value) = definedExternally + var quality: int? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$40` { + var name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaGameScript { + fun set_game_state(params: `T$36`) + fun get_entity_by_tag(tag: String): LuaEntity + fun show_message_dialog(params: `T$37`) + fun is_demo(): Boolean + fun reload_script() + fun reload_mods() + fun save_atlas() + fun check_consistency() + fun regenerate_entity(entities: String) + fun regenerate_entity(entities: Array) + fun take_screenshot(params: `T$38`) + fun set_wait_for_screenshots_to_finish() + fun take_technology_screenshot(params: `T$39`) + fun table_to_json(data: table): String + fun json_to_table(json: String): dynamic /* String? | Number? | Boolean? | table? */ + fun write_file(filename: String, data: Any /* JsTuple */, append: Boolean = definedExternally, for_player: uint = definedExternally) + fun write_file(filename: String, data: Any /* JsTuple */) + fun write_file(filename: String, data: Any /* JsTuple */, append: Boolean = definedExternally) + fun write_file(filename: String, data: String, append: Boolean = definedExternally, for_player: uint = definedExternally) + fun write_file(filename: String, data: String) + fun write_file(filename: String, data: String, append: Boolean = definedExternally) + fun write_file(filename: String, data: Number, append: Boolean = definedExternally, for_player: uint = definedExternally) + fun write_file(filename: String, data: Number) + fun write_file(filename: String, data: Number, append: Boolean = definedExternally) + fun remove_path(path: String) + fun remove_offline_players(players: Array = definedExternally) + fun force_crc() + fun create_force(force: String): LuaForce + fun merge_forces(source: String, destination: String) + fun merge_forces(source: String, destination: LuaForce) + fun merge_forces(source: LuaForce, destination: String) + fun merge_forces(source: LuaForce, destination: LuaForce) + fun create_surface(name: String, settings: MapGenSettings = definedExternally): LuaSurface + fun server_save(name: String = definedExternally) + fun auto_save(name: String = definedExternally) + fun delete_surface(surface: String) + fun delete_surface(surface: LuaSurface) + fun disable_replay() + fun disable_tutorial_triggers() + fun direction_to_string(direction: direction) + fun print(message: Any /* JsTuple */, color: ColorTable = definedExternally) + fun print(message: Any /* JsTuple */) + fun print(message: Any /* JsTuple */, color: Any /* JsTuple */ = definedExternally) + fun print(message: String, color: ColorTable = definedExternally) + fun print(message: String) + fun print(message: String, color: Any /* JsTuple */ = definedExternally) + fun print(message: Number, color: ColorTable = definedExternally) + fun print(message: Number) + fun print(message: Number, color: Any /* JsTuple */ = definedExternally) + fun create_random_generator(seed: uint = definedExternally): LuaRandomGenerator + fun check_prototype_translations() + fun play_sound(params: `T$34`) + fun is_valid_sound_path(sound_path: String): Boolean + fun is_valid_sound_path(sound_path: ): Boolean + fun is_valid_sprite_path(sprite_path: String): Boolean + fun is_valid_sprite_path(sprite_path: ): Boolean + fun kick_player(player: uint, reason: Any /* JsTuple */ = definedExternally) + fun kick_player(player: uint) + fun kick_player(player: uint, reason: String = definedExternally) + fun kick_player(player: uint, reason: Number = definedExternally) + fun kick_player(player: String, reason: Any /* JsTuple */ = definedExternally) + fun kick_player(player: String) + fun kick_player(player: String, reason: String = definedExternally) + fun kick_player(player: String, reason: Number = definedExternally) + fun kick_player(player: LuaPlayer, reason: Any /* JsTuple */ = definedExternally) + fun kick_player(player: LuaPlayer) + fun kick_player(player: LuaPlayer, reason: String = definedExternally) + fun kick_player(player: LuaPlayer, reason: Number = definedExternally) + fun ban_player(player: uint, reason: Any /* JsTuple */ = definedExternally) + fun ban_player(player: uint) + fun ban_player(player: uint, reason: String = definedExternally) + fun ban_player(player: uint, reason: Number = definedExternally) + fun ban_player(player: String, reason: Any /* JsTuple */ = definedExternally) + fun ban_player(player: String) + fun ban_player(player: String, reason: String = definedExternally) + fun ban_player(player: String, reason: Number = definedExternally) + fun ban_player(player: LuaPlayer, reason: Any /* JsTuple */ = definedExternally) + fun ban_player(player: LuaPlayer) + fun ban_player(player: LuaPlayer, reason: String = definedExternally) + fun ban_player(player: LuaPlayer, reason: Number = definedExternally) + fun unban_player(player: uint) + fun unban_player(player: String) + fun unban_player(player: LuaPlayer) + fun purge_player(player: uint) + fun purge_player(player: String) + fun purge_player(player: LuaPlayer) + fun mute_player(player: uint) + fun mute_player(player: String) + fun mute_player(player: LuaPlayer) + fun unmute_player(player: uint) + fun unmute_player(player: String) + fun unmute_player(player: LuaPlayer) + fun count_pipe_groups() + fun is_multiplayer(): Boolean + fun get_active_entities_count(surface: uint = definedExternally): uint + fun get_active_entities_count(): uint + fun get_active_entities_count(surface: String = definedExternally): uint + fun get_active_entities_count(surface: LuaSurface = definedExternally): uint + fun get_map_exchange_string(): String + fun parse_map_exchange_string(map_exchange_string: String): MapExchangeStringData + fun get_train_stops(params: `T$40` = definedExternally): Array + fun get_player(player: uint): LuaPlayer? + fun get_player(player: String): LuaPlayer? + fun get_surface(surface: uint): LuaSurface? + fun get_surface(surface: String): LuaSurface? + fun create_profiler(stopped: Boolean = definedExternally): LuaProfiler + fun evaluate_expression(expression: String, variables: Record = definedExternally): double + fun get_filtered_entity_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_item_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_equipment_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_mod_setting_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_achievement_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_tile_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_decorative_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_fluid_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_recipe_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_filtered_technology_prototypes(filters: Array): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun create_inventory(size: uint16): LuaInventory + fun get_script_inventories(mod: String = definedExternally): Record> + fun reset_time_played() + fun encode_string(string: String): String? + fun decode_string(string: String): String? + var player: LuaPlayer? + var players: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var map_settings: MapSettings + var difficulty_settings: DifficultySettings + var difficulty: difficulty + var forces: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var entity_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var item_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var fluid_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var tile_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var equipment_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var damage_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var virtual_signal_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var equipment_grid_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var recipe_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var technology_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var decorative_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var particle_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var autoplace_control_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var noise_layer_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var mod_setting_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var custom_input_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var ammo_category_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var named_noise_expressions: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var item_subgroup_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var item_group_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var fuel_category_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var resource_category_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var achievement_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var module_category_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var equipment_category_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var trivial_smoke_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var shortcut_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var recipe_category_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var font_prototypes: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var map_gen_presets: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var styles: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var tick: uint + var ticks_played: uint + var tick_paused: Boolean + var ticks_to_run: uint + var finished: Boolean + var speed: float + var surfaces: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var active_mods: Record + var connected_players: Array + var permissions: LuaPermissionGroups + var backer_names: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var default_map_gen_settings: MapGenSettings + var enemy_has_vision_on_land_mines: Boolean + var autosave_enabled: Boolean + var draw_resource_selection: Boolean + var pollution_statistics: LuaFlowStatistics + var max_force_distraction_distance: double + var max_force_distraction_chunk_distance: uint + var max_electric_pole_supply_area_distance: float + var max_electric_pole_connection_distance: double + var max_beacon_supply_area_distance: double + var max_gate_activation_distance: double + var max_inserter_reach_distance: double + var max_pipe_to_ground_distance: uint8 + var max_underground_belt_distance: uint8 + var object_name: String /* "LuaGameScript" */ +} + +external interface LuaGenericOnOffControlBehavior : LuaControlBehavior { + var disabled: Boolean + var circuit_condition: CircuitConditionDefinition + var logistic_condition: CircuitConditionDefinition + var connect_to_logistic_network: Boolean + var valid: Boolean + var object_name: String + fun help(): String +} + +external interface LuaGroup { + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var type: String + var group: LuaGroup? + var subgroups: Array + var order_in_recipe: String + var order: String + var valid: Boolean + var object_name: String /* "LuaGroup" */ + fun help(): String +} + +external interface LuaGui { + fun is_valid_sprite_path(sprite_path: String): Boolean + fun is_valid_sprite_path(sprite_path: ): Boolean + var player: LuaPlayer + var children: Record + var top: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var left: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var center: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var goal: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var screen: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var relative: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaGui" */ + fun help(): String +} + +external interface BaseGuiSpec { + var type: String /* "choose-elem-button" | "drop-down" | "empty-widget" | "entity-preview" | "list-box" | "scroll-pane" | "sprite-button" | "tabbed-pane" | "text-box" | "button" | "camera" | "checkbox" | "flow" | "frame" | "label" | "line" | "minimap" | "progressbar" | "radiobutton" | "slider" | "sprite" | "switch" | "tab" | "table" | "textfield" */ + var name: String? + get() = definedExternally + set(value) = definedExternally + var caption: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var tooltip: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var enabled: Boolean? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var ignored_by_interaction: Boolean? + get() = definedExternally + set(value) = definedExternally + var style: String? + get() = definedExternally + set(value) = definedExternally + var tags: Tags? + get() = definedExternally + set(value) = definedExternally + var index: uint? + get() = definedExternally + set(value) = definedExternally + var anchor: GuiAnchor? + get() = definedExternally + set(value) = definedExternally +} + +external interface ButtonGuiSpec : BaseGuiSpec { + override var type: String /* "button" */ + var mouse_button_filter: dynamic /* MouseButtonFlagsTable? | MouseButtonFlagsArray? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowGuiSpec : BaseGuiSpec { + override var type: String /* "flow" */ + var direction: String? /* "horizontal" | "vertical" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FrameGuiSpec : BaseGuiSpec { + override var type: String /* "frame" */ + var direction: String? /* "horizontal" | "vertical" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TableGuiSpec : BaseGuiSpec { + override var type: String /* "table" */ + var column_count: uint + var draw_vertical_lines: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_horizontal_lines: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_horizontal_line_after_headers: Boolean? + get() = definedExternally + set(value) = definedExternally + var vertical_centering: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TextfieldGuiSpec : BaseGuiSpec { + override var type: String /* "textfield" */ + var text: String? + get() = definedExternally + set(value) = definedExternally + var numeric: Boolean? + get() = definedExternally + set(value) = definedExternally + var allow_decimal: Boolean? + get() = definedExternally + set(value) = definedExternally + var allow_negative: Boolean? + get() = definedExternally + set(value) = definedExternally + var is_password: Boolean? + get() = definedExternally + set(value) = definedExternally + var lose_focus_on_confirm: Boolean? + get() = definedExternally + set(value) = definedExternally + var clear_and_focus_on_right_click: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ProgressbarGuiSpec : BaseGuiSpec { + override var type: String /* "progressbar" */ + var value: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface CheckboxGuiSpec : BaseGuiSpec { + override var type: String /* "checkbox" */ + var state: Boolean +} + +external interface RadiobuttonGuiSpec : BaseGuiSpec { + override var type: String /* "radiobutton" */ + var state: Boolean +} + +external interface SpriteButtonGuiSpec : BaseGuiSpec { + override var type: String /* "sprite-button" */ + var sprite: dynamic /* String? | ? */ + get() = definedExternally + set(value) = definedExternally + var hovered_sprite: dynamic /* String? | ? */ + get() = definedExternally + set(value) = definedExternally + var clicked_sprite: dynamic /* String? | ? */ + get() = definedExternally + set(value) = definedExternally + var number: double? + get() = definedExternally + set(value) = definedExternally + var show_percent_for_small_numbers: Boolean? + get() = definedExternally + set(value) = definedExternally + var mouse_button_filter: dynamic /* MouseButtonFlagsTable? | MouseButtonFlagsArray? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface SpriteGuiSpec : BaseGuiSpec { + override var type: String /* "sprite" */ + var sprite: dynamic /* String? | ? */ + get() = definedExternally + set(value) = definedExternally + var resize_to_sprite: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ScrollPaneGuiSpec : BaseGuiSpec { + override var type: String /* "scroll-pane" */ + var horizontal_scroll_policy: String? /* "auto" | "never" | "always" | "auto-and-reserve-space" | "dont-show-but-allow-scrolling" */ + get() = definedExternally + set(value) = definedExternally + var vertical_scroll_policy: String? /* "auto" | "never" | "always" | "auto-and-reserve-space" | "dont-show-but-allow-scrolling" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface DropDownGuiSpec : BaseGuiSpec { + override var type: String /* "drop-down" */ + var items: Array | String | Number */>? + get() = definedExternally + set(value) = definedExternally + var selected_index: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface LineGuiSpec : BaseGuiSpec { + override var type: String /* "line" */ + var direction: String? /* "horizontal" | "vertical" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ListBoxGuiSpec : BaseGuiSpec { + override var type: String /* "list-box" */ + var items: Array | String | Number */>? + get() = definedExternally + set(value) = definedExternally + var selected_index: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface CameraGuiSpec : BaseGuiSpec { + override var type: String /* "camera" */ + var position: Position + var surface_index: uint? + get() = definedExternally + set(value) = definedExternally + var zoom: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface ChooseElemButtonFilters { + @nativeGetter + operator fun get(key: String): Any? + @nativeSetter + operator fun set(key: String, value: Any) + var item: Array + var tile: Array + var entity: Array + var signal: Any + var fluid: Array + var recipe: Array + var decorative: Array + var achievement: Array + var equipment: Array + var technology: Array +} + +external interface BaseChooseElemButtonSpec : BaseGuiSpec { + override var type: String /* "choose-elem-button" */ + var elem_type: String /* "item" | "tile" | "entity" | "signal" | "fluid" | "recipe" | "decorative" | "item-group" | "achievement" | "equipment" | "technology" */ + var filters: Any + get() = definedExternally + set(value) = definedExternally +} + +external interface ItemChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "item" */ + var item: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface TileChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "tile" */ + var tile: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface EntityChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "entity" */ + var entity: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface SignalChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "signal" */ + var signal: SignalID? + get() = definedExternally + set(value) = definedExternally +} + +external interface FluidChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "fluid" */ + var fluid: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface RecipeChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "recipe" */ + var recipe: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface DecorativeChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "decorative" */ + var decorative: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface ItemGroupChooseElemButtonSpec : BaseChooseElemButtonSpec { + @nativeGetter + operator fun get(key: String): String? + @nativeSetter + operator fun set(key: String, value: String?) + override var elem_type: String /* "item-group" */ +} + +external interface AchievementChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "achievement" */ + var achievement: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface EquipmentChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "equipment" */ + var equipment: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface TechnologyChooseElemButtonSpec : BaseChooseElemButtonSpec { + override var elem_type: String /* "technology" */ + var technology: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface TextBoxGuiSpec : BaseGuiSpec { + override var type: String /* "text-box" */ + var text: String? + get() = definedExternally + set(value) = definedExternally + var clear_and_focus_on_right_click: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface SliderGuiSpec : BaseGuiSpec { + override var type: String /* "slider" */ + var minimum_value: double? + get() = definedExternally + set(value) = definedExternally + var maximum_value: double? + get() = definedExternally + set(value) = definedExternally + var value: double? + get() = definedExternally + set(value) = definedExternally + var value_step: double? + get() = definedExternally + set(value) = definedExternally + var discrete_slider: Boolean? + get() = definedExternally + set(value) = definedExternally + var discrete_values: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface MinimapGuiSpec : BaseGuiSpec { + override var type: String /* "minimap" */ + var position: Position? + get() = definedExternally + set(value) = definedExternally + var surface_index: uint? + get() = definedExternally + set(value) = definedExternally + var chart_player_index: uint? + get() = definedExternally + set(value) = definedExternally + var force: String? + get() = definedExternally + set(value) = definedExternally + var zoom: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface TabGuiSpec : BaseGuiSpec { + override var type: String /* "tab" */ + var badge_text: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface SwitchGuiSpec : BaseGuiSpec { + override var type: String /* "switch" */ + var switch_state: String? /* "left" | "right" | "none" */ + get() = definedExternally + set(value) = definedExternally + var allow_none_state: Boolean? + get() = definedExternally + set(value) = definedExternally + var left_label_caption: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var left_label_tooltip: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var right_label_caption: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var right_label_tooltip: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface OtherGuiSpec : BaseGuiSpec { + override var type: String /* "empty-widget" | "entity-preview" | "tabbed-pane" | "label" */ +} + +external interface GuiElementIndex { + @nativeGetter + operator fun get(name: String): dynamic /* ChooseElemButtonGuiElementMembers? | DropDownGuiElementMembers? | EmptyWidgetGuiElementMembers? | EntityPreviewGuiElementMembers? | ListBoxGuiElementMembers? | ScrollPaneGuiElementMembers? | SpriteButtonGuiElementMembers? | TabbedPaneGuiElementMembers? | TextBoxGuiElementMembers? | ButtonGuiElementMembers? | CameraGuiElementMembers? | CheckboxGuiElementMembers? | FlowGuiElementMembers? | FrameGuiElementMembers? | LabelGuiElementMembers? | LineGuiElementMembers? | MinimapGuiElementMembers? | ProgressbarGuiElementMembers? | RadiobuttonGuiElementMembers? | SliderGuiElementMembers? | SpriteGuiElementMembers? | SwitchGuiElementMembers? | TabGuiElementMembers? | TableGuiElementMembers? | TextfieldGuiElementMembers? */ + @nativeSetter + operator fun set(name: String, value: ChooseElemButtonGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: DropDownGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: EmptyWidgetGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: EntityPreviewGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: ListBoxGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: ScrollPaneGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: SpriteButtonGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: TabbedPaneGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: TextBoxGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: ButtonGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: CameraGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: CheckboxGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: FlowGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: FrameGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: LabelGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: LineGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: MinimapGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: ProgressbarGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: RadiobuttonGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: SliderGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: SpriteGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: SwitchGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: TabGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: TableGuiElementMembers) + @nativeSetter + operator fun set(name: String, value: TextfieldGuiElementMembers) +} + +external interface `T$41` { + var type: Type +} + +external interface BaseGuiElement { + fun add(element: Any /* ButtonGuiSpec | FlowGuiSpec | FrameGuiSpec | TableGuiSpec | TextfieldGuiSpec | ProgressbarGuiSpec | CheckboxGuiSpec | RadiobuttonGuiSpec | SpriteButtonGuiSpec | SpriteGuiSpec | ScrollPaneGuiSpec | DropDownGuiSpec | LineGuiSpec | ListBoxGuiSpec | CameraGuiSpec | ItemChooseElemButtonSpec | TileChooseElemButtonSpec | EntityChooseElemButtonSpec | SignalChooseElemButtonSpec | FluidChooseElemButtonSpec | RecipeChooseElemButtonSpec | DecorativeChooseElemButtonSpec | ItemGroupChooseElemButtonSpec | AchievementChooseElemButtonSpec | EquipmentChooseElemButtonSpec | TechnologyChooseElemButtonSpec | TextBoxGuiSpec | SliderGuiSpec | MinimapGuiSpec | TabGuiSpec | SwitchGuiSpec | OtherGuiSpec */): Extract> + fun clear() + fun destroy() + fun get_mod(): String? + fun get_index_in_parent(): uint + fun clear_items() + fun get_item(index: uint): dynamic /* JsTuple | String | Number */ + fun set_item(index: uint, string: Any /* JsTuple */) + fun set_item(index: uint, string: String) + fun set_item(index: uint, string: Number) + fun add_item(string: Any /* JsTuple */, index: uint = definedExternally) + fun add_item(string: Any /* JsTuple */) + fun add_item(string: String, index: uint = definedExternally) + fun add_item(string: String) + fun add_item(string: Number, index: uint = definedExternally) + fun add_item(string: Number) + fun remove_item(index: uint) + fun get_slider_minimum(): double + fun get_slider_maximum(): double + fun set_slider_minimum_maximum(minimum: double, maximum: double) + fun get_slider_value_step(): double + fun get_slider_discrete_slider(): Boolean + fun get_slider_discrete_values(): Boolean + fun set_slider_value_step(value: double) + fun set_slider_discrete_slider(value: Boolean) + fun set_slider_discrete_values(value: Boolean) + fun focus() + fun bring_to_front() + var index: uint + var gui: LuaGui + var parent: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var name: String + var caption: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var style: dynamic /* LuaStyle | String */ + get() = definedExternally + set(value) = definedExternally + var visible: Boolean + var children_names: Array + var player_index: uint + var sprite: dynamic /* String | */ + get() = definedExternally + set(value) = definedExternally + var resize_to_sprite: Boolean + var clicked_sprite: dynamic /* String | */ + get() = definedExternally + set(value) = definedExternally + var tooltip: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var type: String /* "choose-elem-button" | "drop-down" | "empty-widget" | "entity-preview" | "list-box" | "scroll-pane" | "sprite-button" | "tabbed-pane" | "text-box" | "button" | "camera" | "checkbox" | "flow" | "frame" | "label" | "line" | "minimap" | "progressbar" | "radiobutton" | "slider" | "sprite" | "switch" | "tab" | "table" | "textfield" */ + var children: Array + var items: Array | String | Number */> + var selected_index: uint + var number: double? + var show_percent_for_small_numbers: Boolean + var location: dynamic /* GuiLocationTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: Position + var surface_index: uint + var zoom: double + var force: String? + var enabled: Boolean + var ignored_by_interaction: Boolean + var mouse_button_filter: dynamic /* MouseButtonFlagsTable | MouseButtonFlagsArray */ + get() = definedExternally + set(value) = definedExternally + var drag_target: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var tabs: Array + var entity: LuaEntity? + var anchor: GuiAnchor? + var tags: Tags + var valid: Boolean + var object_name: String /* "LuaGuiElement" */ + fun help(): String +} + +external interface ChooseElemButtonGuiElementMembers : BaseGuiElement { + override var type: String /* "choose-elem-button" */ + var elem_type: String /* "item" | "tile" | "entity" | "signal" | "fluid" | "recipe" | "decorative" | "item-group" | "achievement" | "equipment" | "technology" */ + var elem_value: Any? + var elem_filters: Any + var locked: Boolean +} + +external interface DropDownGuiElementMembers : BaseGuiElement { + override var type: String /* "drop-down" */ +} + +external interface EmptyWidgetGuiElementMembers : BaseGuiElement { + override var type: String /* "empty-widget" */ +} + +external interface EntityPreviewGuiElementMembers : BaseGuiElement { + override var type: String /* "entity-preview" */ +} + +external interface ListBoxGuiElementMembers : BaseGuiElement { + override var type: String /* "list-box" */ + fun scroll_to_item(index: int, scroll_mode: String /* "in-view" | "top-third" */ = definedExternally) +} + +external interface ScrollPaneGuiElementMembers : BaseGuiElement { + override var type: String /* "scroll-pane" */ + fun scroll_to_top() + fun scroll_to_bottom() + fun scroll_to_left() + fun scroll_to_right() + fun scroll_to_element(element: Any /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */, scroll_mode: String /* "in-view" | "top-third" */ = definedExternally) + var horizontal_scroll_policy: String /* "auto" | "never" | "always" | "auto-and-reserve-space" | "dont-show-but-allow-scrolling" */ + var vertical_scroll_policy: String /* "auto" | "never" | "always" | "auto-and-reserve-space" | "dont-show-but-allow-scrolling" */ +} + +external interface SpriteButtonGuiElementMembers : BaseGuiElement { + override var type: String /* "sprite-button" */ + var hovered_sprite: dynamic /* String | */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TabbedPaneGuiElementMembers : BaseGuiElement { + override var type: String /* "tabbed-pane" */ + fun add_tab(tab: Any /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */, content: Any /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */) + fun remove_tab(tab: Any /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */) + var selected_tab_index: uint? +} + +external interface TextBoxGuiElementMembers : BaseGuiElement { + override var type: String /* "text-box" */ + fun scroll_to_top() + fun scroll_to_bottom() + fun scroll_to_left() + fun scroll_to_right() + fun select_all() + fun select(start: int, end: int) + var text: String + var selectable: Boolean + var word_wrap: Boolean + var read_only: Boolean + var clear_and_focus_on_right_click: Boolean +} + +external interface ButtonGuiElementMembers : BaseGuiElement { + override var type: String /* "button" */ +} + +external interface CameraGuiElementMembers : BaseGuiElement { + override var type: String /* "camera" */ +} + +external interface CheckboxGuiElementMembers : BaseGuiElement { + override var type: String /* "checkbox" */ + var state: Boolean +} + +external interface FlowGuiElementMembers : BaseGuiElement { + override var type: String /* "flow" */ + var direction: String /* "horizontal" | "vertical" */ +} + +external interface FrameGuiElementMembers : BaseGuiElement { + override var type: String /* "frame" */ + fun force_auto_center() + var direction: String /* "horizontal" | "vertical" */ + var auto_center: Boolean +} + +external interface LabelGuiElementMembers : BaseGuiElement { + override var type: String /* "label" */ +} + +external interface LineGuiElementMembers : BaseGuiElement { + override var type: String /* "line" */ + var direction: String /* "horizontal" | "vertical" */ +} + +external interface MinimapGuiElementMembers : BaseGuiElement { + override var type: String /* "minimap" */ + var minimap_player_index: uint +} + +external interface ProgressbarGuiElementMembers : BaseGuiElement { + override var type: String /* "progressbar" */ + var value: double +} + +external interface RadiobuttonGuiElementMembers : BaseGuiElement { + override var type: String /* "radiobutton" */ + var state: Boolean +} + +external interface SliderGuiElementMembers : BaseGuiElement { + override var type: String /* "slider" */ + var slider_value: double +} + +external interface SpriteGuiElementMembers : BaseGuiElement { + override var type: String /* "sprite" */ +} + +external interface SwitchGuiElementMembers : BaseGuiElement { + override var type: String /* "switch" */ + var switch_state: String + var allow_none_state: Boolean + var left_label_caption: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var left_label_tooltip: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var right_label_caption: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var right_label_tooltip: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TabGuiElementMembers : BaseGuiElement { + override var type: String /* "tab" */ + var badge_text: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TableGuiElementMembers : BaseGuiElement { + override var type: String /* "table" */ + var draw_vertical_lines: Boolean + var draw_horizontal_lines: Boolean + var draw_horizontal_line_after_headers: Boolean + var column_count: uint + var vertical_centering: Boolean +} + +external interface TextfieldGuiElementMembers : BaseGuiElement { + override var type: String /* "textfield" */ + fun select_all() + fun select(start: int, end: int) + var text: String + var numeric: Boolean + var allow_decimal: Boolean + var allow_negative: Boolean + var is_password: Boolean + var lose_focus_on_confirm: Boolean + var clear_and_focus_on_right_click: Boolean +} + +external interface LuaHeatEnergySourcePrototype { + var emissions: double + var render_no_network_icon: Boolean + var render_no_power_icon: Boolean + var max_temperature: double + var default_temperature: double + var specific_heat: double + var max_transfer: double + var min_temperature_gradient: double + var min_working_temperature: double + var minimum_glow_temperature: double + var connections: Array + var valid: Boolean + var object_name: String /* "LuaHeatEnergySourcePrototype" */ + fun help(): String +} + +external interface LuaInserterControlBehavior : LuaGenericOnOffControlBehavior { + var circuit_read_hand_contents: Boolean + var circuit_mode_of_operation: circuit_mode_of_operation + var circuit_hand_read_mode: hand_read_mode + var circuit_set_stack_size: Boolean + var circuit_stack_control_signal: SignalID + override var valid: Boolean + override var object_name: String /* "LuaInserterControlBehavior" */ + override fun help(): String +} + +typealias LuaInventory = Array + +external interface LuaItemPrototype { + fun has_flag(flag: String): Boolean + fun get_ammo_type(ammo_source_type: String /* "default" | "player" | "turret" | "vehicle" */ = definedExternally): AmmoType? + var type: String /* "gun" | "mining-tool" */ + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var order: String + var place_result: LuaEntityPrototype? + var place_as_equipment_result: LuaEquipmentPrototype? + var place_as_tile_result: PlaceAsTileResult? + var stackable: Boolean + var default_request_amount: uint + var stack_size: uint + var wire_count: uint + var fuel_category: String? + var burnt_result: LuaItemPrototype? + var fuel_value: float + var fuel_acceleration_multiplier: double + var fuel_top_speed_multiplier: double + var fuel_emissions_multiplier: double + var subgroup: LuaGroup + var group: LuaGroup + var flags: ItemPrototypeFlags + var rocket_launch_products: Array + var can_be_mod_opened: Boolean + var magazine_size: float? + var reload_time: float? + var equipment_grid: LuaEquipmentGridPrototype? + var resistances: Record? + var inventory_size_bonus: uint? + var capsule_action: CapsuleAction? + var attack_parameters: dynamic /* ProjectileAttackParameters? | StreamAttackParameters? | OtherAttackParameters? */ + get() = definedExternally + set(value) = definedExternally + var inventory_size: uint? + var item_filters: Record + var item_group_filters: Record + var item_subgroup_filters: Record + var filter_mode: String + var insertion_priority_mode: String + var localised_filter_message: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var extend_inventory_by_default: Boolean + var default_label_color: ColorTable? + var draw_label_for_cursor_render: Boolean + var speed: float? + var module_effects: ModuleEffects? + var category: String + var tier: uint + var limitations: Array + var limitation_message_key: String + var straight_rail: LuaEntityPrototype + var curved_rail: LuaEntityPrototype + var repair_result: Array? + var selection_border_color: ColorTable + var alt_selection_border_color: ColorTable + var selection_mode_flags: SelectionModeFlags + var alt_selection_mode_flags: SelectionModeFlags + var selection_cursor_box_type: String + var alt_selection_cursor_box_type: String + var always_include_tiles: Boolean + var entity_filter_mode: String + var alt_entity_filter_mode: String + var tile_filter_mode: String + var alt_tile_filter_mode: String + var entity_filters: Record + var alt_entity_filters: Record + var entity_type_filters: Record + var alt_entity_type_filters: Record + var tile_filters: Record + var alt_tile_filters: Record + var entity_filter_slots: uint? + var tile_filter_slots: uint? + var durability_description_key: String + var durability: double? + var infinite: Boolean? + var mapper_count: uint? + var valid: Boolean + var object_name: String /* "LuaItemPrototype" */ + fun help(): String +} + +external interface `T$42` { + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var position: Position + var force_build: Boolean? + get() = definedExternally + set(value) = definedExternally + var direction: direction? + get() = definedExternally + set(value) = definedExternally + var skip_fog_of_war: Boolean? + get() = definedExternally + set(value) = definedExternally + var by_player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var raise_built: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$43` { + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var skip_fog_of_war: Boolean? + get() = definedExternally + set(value) = definedExternally + var by_player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$44` { + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var always_include_tiles: Boolean? + get() = definedExternally + set(value) = definedExternally + var include_entities: Boolean? + get() = definedExternally + set(value) = definedExternally + var include_modules: Boolean? + get() = definedExternally + set(value) = definedExternally + var include_station_names: Boolean? + get() = definedExternally + set(value) = definedExternally + var include_trains: Boolean? + get() = definedExternally + set(value) = definedExternally + var include_fuel: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaItemStack { + fun is_blueprint_setup(): Boolean + fun get_blueprint_entities(): Array + fun set_blueprint_entities(entities: Array) + fun add_ammo(amount: float) + fun drain_ammo(amount: float) + fun add_durability(amount: double) + fun drain_durability(amount: double) + fun can_set_stack(stack: String = definedExternally): Boolean + fun can_set_stack(): Boolean + fun can_set_stack(stack: ItemStackDefinition = definedExternally): Boolean + fun can_set_stack(stack: LuaItemStack = definedExternally): Boolean + fun set_stack(stack: String = definedExternally): Boolean + fun set_stack(): Boolean + fun set_stack(stack: ItemStackDefinition = definedExternally): Boolean + fun set_stack(stack: LuaItemStack = definedExternally): Boolean + fun transfer_stack(stack: String): Boolean + fun transfer_stack(stack: ItemStackDefinition): Boolean + fun transfer_stack(stack: LuaItemStack): Boolean + fun export_stack(): String + fun import_stack(data: String): int + fun swap_stack(stack: LuaItemStack): Boolean + fun clear() + fun get_blueprint_tiles(): Array + fun set_blueprint_tiles(tiles: Array) + fun get_inventory(inventory: inventory): LuaInventory? + fun build_blueprint(params: `T$42`): Array + fun deconstruct_area(params: `T$43`) + fun cancel_deconstruct_area(params: `T$43`) + fun create_blueprint(params: `T$44`): Record + fun get_tag(tag_name: String): dynamic /* String? | Number? | Boolean? | table? */ + fun set_tag(tag_name: String, tag: String): dynamic /* String | Number | Boolean | table */ + fun set_tag(tag_name: String, tag: Number): dynamic /* String | Number | Boolean | table */ + fun set_tag(tag_name: String, tag: Boolean): dynamic /* String | Number | Boolean | table */ + fun set_tag(tag_name: String, tag: table): dynamic /* String | Number | Boolean | table */ + fun remove_tag(tag: String): Boolean + fun clear_blueprint() + fun get_entity_filter(index: uint): String + fun set_entity_filter(index: uint, filter: String?): Boolean + fun set_entity_filter(index: uint, filter: LuaEntityPrototype?): Boolean + fun set_entity_filter(index: uint, filter: LuaEntity?): Boolean + fun get_tile_filter(index: uint): String + fun set_tile_filter(index: uint, filter: String?): Boolean + fun set_tile_filter(index: uint, filter: LuaTilePrototype?): Boolean + fun set_tile_filter(index: uint, filter: LuaTile?): Boolean + fun clear_deconstruction_item() + fun clear_upgrade_item() + fun get_mapper(index: uint, type: String /* "from" | "to" */): UpgradeFilter + fun set_mapper(index: uint, type: String, filter: UpgradeFilter?) + fun get_blueprint_entity_count(): uint + fun get_blueprint_entity_tags(index: uint): Tags + fun set_blueprint_entity_tags(index: uint, tags: Tags) + fun get_blueprint_entity_tag(index: uint, tag: String): dynamic /* String | Number | Boolean | table */ + fun set_blueprint_entity_tag(index: uint, tag: String, value: String?) + fun set_blueprint_entity_tag(index: uint, tag: String, value: Number?) + fun set_blueprint_entity_tag(index: uint, tag: String, value: Boolean?) + fun set_blueprint_entity_tag(index: uint, tag: String, value: table?) + fun create_grid(): LuaEquipmentGrid + var valid_for_read: Boolean + var prototype: LuaItemPrototype + var name: String + var type: String + var count: uint + var grid: LuaEquipmentGrid? + var health: float + var durability: double? + var ammo: uint + var blueprint_icons: Array? + var blueprint_snap_to_grid: Position? + var blueprint_position_relative_to_grid: Position? + var blueprint_absolute_snapping: Boolean + var label: String? + var label_color: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var allow_manual_label_change: Boolean + var cost_to_build: Record + var extends_inventory: Boolean + var prioritize_insertion_mode: String + var default_icons: Array + var tags: Tags + var custom_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var entity_filters: Array + var tile_filters: Array + var entity_filter_mode: entity_filter_mode + var tile_filter_mode: tile_filter_mode + var tile_selection_mode: tile_selection_mode + var trees_and_rocks_only: Boolean + var entity_filter_count: uint + var tile_filter_count: uint + var active_index: uint? + var item_number: uint? + var connected_entity: LuaEntity? + var is_blueprint: Boolean + var is_blueprint_book: Boolean + var is_module: Boolean + var is_tool: Boolean + var is_mining_tool: Boolean + var is_armor: Boolean + var is_repair_tool: Boolean + var is_item_with_label: Boolean + var is_item_with_inventory: Boolean + var is_item_with_entity_data: Boolean + var is_selection_tool: Boolean + var is_item_with_tags: Boolean + var is_deconstruction_item: Boolean + var is_upgrade_item: Boolean + var valid: Boolean + var object_name: String /* "LuaItemStack" */ + fun help(): String +} + +external interface LuaLampControlBehavior : LuaGenericOnOffControlBehavior { + var use_colors: Boolean + var color: ColorTable? + override var valid: Boolean + override var object_name: String /* "LuaLampControlBehavior" */ + override fun help(): String +} + +external interface LuaLazyLoadedValue { + fun get(): T + var valid: Boolean + var object_name: String /* "LuaLazyLoadedValue" */ + fun help(): String +} + +external interface LuaLogisticCell { + fun is_in_logistic_range(position: Position): Boolean + fun is_in_construction_range(position: Position): Boolean + fun is_neighbour_with(other: LuaLogisticCell): Boolean + var logistic_radius: float + var logistics_connection_distance: float + var construction_radius: float + var stationed_logistic_robot_count: uint + var stationed_construction_robot_count: uint + var mobile: Boolean + var transmitting: Boolean + var charge_approach_distance: float + var charging_robot_count: uint + var to_charge_robot_count: uint + var owner: LuaEntity + var logistic_network: LuaLogisticNetwork? + var neighbours: Array + var charging_robots: Array + var to_charge_robots: Array + var valid: Boolean + var object_name: String /* "LuaLogisticCell" */ + fun help(): String +} + +external interface LuaLogisticContainerControlBehavior : LuaControlBehavior { + var circuit_mode_of_operation: _defines_control_behavior_logistic_container_circuit_mode_of_operation + var valid: Boolean + var object_name: String /* "LuaLogisticContainerControlBehavior" */ + fun help(): String +} + +external interface `T$45` { + var name: String + var position: Position? + get() = definedExternally + set(value) = definedExternally + var include_buffers: Boolean? + get() = definedExternally + set(value) = definedExternally + var members: String? /* "storage" | "passive-provider" | "buffer" | "active-provider" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$46` { + var stack: dynamic /* String | ItemStackDefinition | LuaItemStack */ + get() = definedExternally + set(value) = definedExternally + var members: String? /* "storage" | "storage-empty" | "storage-empty-slot" | "requester" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaLogisticNetwork { + fun get_item_count(item: String = definedExternally, member: String /* "storage" | "providers" */ = definedExternally): int + fun get_contents(): Record + fun remove_item(item: String, members: String /* "storage" | "passive-provider" | "buffer" | "active-provider" */ = definedExternally): uint + fun remove_item(item: String): uint + fun remove_item(item: ItemStackDefinition, members: String /* "storage" | "passive-provider" | "buffer" | "active-provider" */ = definedExternally): uint + fun remove_item(item: ItemStackDefinition): uint + fun remove_item(item: LuaItemStack, members: String /* "storage" | "passive-provider" | "buffer" | "active-provider" */ = definedExternally): uint + fun remove_item(item: LuaItemStack): uint + fun insert(item: String, members: String /* "storage" | "storage-empty" | "storage-empty-slot" | "requester" */ = definedExternally): uint + fun insert(item: String): uint + fun insert(item: ItemStackDefinition, members: String /* "storage" | "storage-empty" | "storage-empty-slot" | "requester" */ = definedExternally): uint + fun insert(item: ItemStackDefinition): uint + fun insert(item: LuaItemStack, members: String /* "storage" | "storage-empty" | "storage-empty-slot" | "requester" */ = definedExternally): uint + fun insert(item: LuaItemStack): uint + fun find_cell_closest_to(position: Position): LuaLogisticCell? + fun select_pickup_point(params: `T$45`): LuaLogisticPoint? + fun select_drop_point(params: `T$46`): LuaLogisticPoint? + var force: LuaForce + var available_logistic_robots: uint + var all_logistic_robots: uint + var available_construction_robots: uint + var all_construction_robots: uint + var robot_limit: uint + var cells: Array + var providers: Array + var empty_providers: Array + var requesters: Array + var storages: Array + var logistic_members: Array + var provider_points: Array + var passive_provider_points: Array + var active_provider_points: Array + var empty_provider_points: Array + var requester_points: Array + var storage_points: Array + var robots: Array + var construction_robots: Array + var logistic_robots: Array + var valid: Boolean + var object_name: String /* "LuaLogisticNetwork" */ + fun help(): String +} + +external interface LuaLogisticPoint { + var owner: LuaEntity + var logistic_network: LuaLogisticNetwork + var logistic_member_index: uint + var filters: Array? + var mode: logistic_mode + var force: LuaForce + var targeted_items_pickup: Record + var targeted_items_deliver: Record + var exact: Boolean + var valid: Boolean + var object_name: String /* "LuaLogisticPoint" */ + fun help(): String +} + +external interface LuaMiningDrillControlBehavior : LuaGenericOnOffControlBehavior { + var circuit_enable_disable: Boolean + var circuit_read_resources: Boolean + var resource_read_mode: resource_read_mode + var resource_read_targets: Array + override var valid: Boolean + override var object_name: String /* "LuaMiningDrillControlBehavior" */ + override fun help(): String +} + +external interface LuaModSettingPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var mod: String + var setting_type: String + var default_value: dynamic /* Boolean | double | int | String */ + get() = definedExternally + set(value) = definedExternally + var minimum_value: dynamic /* double? | int? */ + get() = definedExternally + set(value) = definedExternally + var maximum_value: dynamic /* double? | int? */ + get() = definedExternally + set(value) = definedExternally + var allowed_values: dynamic /* Array? | Array? | Array? */ + get() = definedExternally + set(value) = definedExternally + var allow_blank: Boolean? + var auto_trim: Boolean? + var hidden: Boolean + var valid: Boolean + var object_name: String /* "LuaModSettingPrototype" */ + fun help(): String +} + +external interface LuaModuleCategoryPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaModuleCategoryPrototype" */ + fun help(): String +} + +external interface LuaNamedNoiseExpression { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var intended_property: String + var expression: NoiseExpression + var valid: Boolean + var object_name: String /* "LuaNamedNoiseExpression" */ + fun help(): String +} + +external interface LuaNoiseLayerPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaNoiseLayerPrototype" */ + fun help(): String +} + +external interface LuaParticlePrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var regular_trigger_effect: TriggerEffectItem + var ended_in_water_trigger_effect: TriggerEffectItem + var render_layer: dynamic /* Number | */ + get() = definedExternally + set(value) = definedExternally + var render_layer_when_on_ground: dynamic /* Number | */ + get() = definedExternally + set(value) = definedExternally + var life_time: uint + var regular_trigger_effect_frequency: uint + var movement_modifier_when_on_ground: float + var movement_modifier: float + var mining_particle_frame_speed: float + var valid: Boolean + var object_name: String /* "LuaParticlePrototype" */ + fun help(): String +} + +external interface LuaPermissionGroup { + fun add_player(player: uint): Boolean + fun add_player(player: String): Boolean + fun add_player(player: LuaPlayer): Boolean + fun remove_player(player: uint): Boolean + fun remove_player(player: String): Boolean + fun remove_player(player: LuaPlayer): Boolean + fun allows_action(action: input_action): Boolean + fun set_allows_action(action: input_action, allow_action: Boolean): Boolean + fun destroy(): Boolean + var name: String + var players: Array + var group_id: uint + var valid: Boolean + var object_name: String /* "LuaPermissionGroup" */ + fun help(): String +} + +external interface LuaPermissionGroups { + fun create_group(name: String = definedExternally): LuaPermissionGroup? + fun get_group(group: String): LuaPermissionGroup? + fun get_group(group: uint): LuaPermissionGroup? + var groups: Array + var valid: Boolean + var object_name: String /* "LuaPermissionGroups" */ + fun help(): String +} + +external interface `T$47` { + var type: controllers + var character: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var waypoints: CutsceneWaypoint? + get() = definedExternally + set(value) = definedExternally + var start_position: Position? + get() = definedExternally + set(value) = definedExternally + var start_zoom: double? + get() = definedExternally + set(value) = definedExternally + var final_transition_time: uint? + get() = definedExternally + set(value) = definedExternally + var chart_mode_cutoff: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$48` { + var position: Position +} + +external interface `T$49` { + var entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var prototype: LuaEntityPrototype? + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var type: alert_type? + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally + var icon: SignalID? + get() = definedExternally + set(value) = definedExternally + var message: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$50` { + var entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var prototype: LuaEntityPrototype? + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var type: alert_type? + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$51` { + var name: String + var position: Position + var direction: direction? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$52` { + var position: Position + var direction: direction? + get() = definedExternally + set(value) = definedExternally + var alt: Boolean? + get() = definedExternally + set(value) = definedExternally + var terrain_building_size: uint? + get() = definedExternally + set(value) = definedExternally + var skip_fog_of_war: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$53` { + var text: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var create_at_cursor: Boolean? + get() = definedExternally + set(value) = definedExternally + var color: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var speed: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$54` { + var address: String + var name: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var description: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var password: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaPlayer : LuaControl { + fun set_ending_screen_data(message: Any /* JsTuple */, file: String = definedExternally) + fun set_ending_screen_data(message: Any /* JsTuple */) + fun set_ending_screen_data(message: String, file: String = definedExternally) + fun set_ending_screen_data(message: String) + fun set_ending_screen_data(message: Number, file: String = definedExternally) + fun set_ending_screen_data(message: Number) + fun print(message: Any /* JsTuple */, color: ColorTable = definedExternally) + fun print(message: Any /* JsTuple */) + fun print(message: Any /* JsTuple */, color: Any /* JsTuple */ = definedExternally) + fun print(message: String, color: ColorTable = definedExternally) + fun print(message: String) + fun print(message: String, color: Any /* JsTuple */ = definedExternally) + fun print(message: Number, color: ColorTable = definedExternally) + fun print(message: Number) + fun print(message: Number, color: Any /* JsTuple */ = definedExternally) + fun clear_console() + fun get_goal_description(): dynamic /* JsTuple | String | Number */ + fun set_goal_description(text: Any /* JsTuple */ = definedExternally, only_update: Boolean = definedExternally) + fun set_goal_description() + fun set_goal_description(text: Any /* JsTuple */ = definedExternally) + fun set_goal_description(text: String = definedExternally, only_update: Boolean = definedExternally) + fun set_goal_description(text: String = definedExternally) + fun set_goal_description(text: Number = definedExternally, only_update: Boolean = definedExternally) + fun set_goal_description(text: Number = definedExternally) + fun set_controller(params: `T$47`) + fun drag_wire(params: `T$48`): Boolean + fun disable_recipe_groups() + fun enable_recipe_groups() + fun disable_recipe_subgroups() + fun enable_recipe_subgroups() + fun print_entity_statistics(entities: Array = definedExternally) + fun print_robot_jobs() + fun print_lua_object_statistics() + fun log_active_entity_chunk_counts() + fun log_active_entity_counts() + fun unlock_achievement(name: String) + fun clear_cursor(): Boolean + fun create_character(character: String = definedExternally): Boolean + fun add_alert(entity: LuaEntity, type: alert_type) + fun add_custom_alert(entity: LuaEntity, icon: SignalID, message: Any /* JsTuple */, show_on_map: Boolean) + fun add_custom_alert(entity: LuaEntity, icon: SignalID, message: String, show_on_map: Boolean) + fun add_custom_alert(entity: LuaEntity, icon: SignalID, message: Number, show_on_map: Boolean) + fun remove_alert(params: `T$49`) + fun get_alerts(params: `T$50`): Record>> + fun mute_alert(alert_type: alert_type): Boolean + fun unmute_alert(alert_type: alert_type): Boolean + fun is_alert_muted(alert_type: alert_type): Boolean + fun enable_alert(alert_type: alert_type): Boolean + fun disable_alert(alert_type: alert_type): Boolean + fun is_alert_enabled(alert_type: alert_type): Boolean + fun pipette_entity(entity: String): Boolean + fun pipette_entity(entity: LuaEntity): Boolean + fun pipette_entity(entity: LuaEntityPrototype): Boolean + fun can_place_entity(params: `T$51`): Boolean + fun can_build_from_cursor(params: `T$52`): Boolean + fun build_from_cursor(params: `T$52`) + fun use_from_cursor(position: Position) + fun play_sound(params: `T$34`) + fun get_associated_characters(): Array + fun associate_character(character: LuaEntity) + fun disassociate_character(character: LuaEntity) + fun create_local_flying_text(params: `T$53`) + fun get_quick_bar_slot(index: uint): LuaItemPrototype? + fun set_quick_bar_slot(index: uint, filter: String?) + fun set_quick_bar_slot(index: uint, filter: LuaItemPrototype?) + fun set_quick_bar_slot(index: uint, filter: LuaItemStack?) + fun get_active_quick_bar_page(index: uint): uint8? + fun set_active_quick_bar_page(screen_index: uint, page_index: uint) + fun jump_to_cutscene_waypoint(waypoint_index: uint) + fun exit_cutscene() + fun open_map(position: Position, scale: double = definedExternally) + fun zoom_to_world(position: Position, scale: double = definedExternally) + fun close_map() + fun is_shortcut_toggled(prototype_name: String): Boolean + fun is_shortcut_available(prototype_name: String): Boolean + fun set_shortcut_toggled(prototype_name: String, toggled: Boolean) + fun set_shortcut_available(prototype_name: String, available: Boolean) + fun connect_to_server(params: `T$54`) + fun toggle_map_editor() + fun request_translation(localised_string: Any /* JsTuple */): Boolean + fun request_translation(localised_string: String): Boolean + fun request_translation(localised_string: Number): Boolean + fun get_infinity_inventory_filter(index: uint): InfinityInventoryFilter? + fun set_infinity_inventory_filter(index: uint, filter: InfinityInventoryFilter?) + fun clear_recipe_notifications() + fun add_recipe_notification(recipe: String) + fun add_to_clipboard(blueprint: LuaItemStack) + fun activate_paste() + fun start_selection(position: Position, selection_mode: String) + fun clear_selection() + var character: LuaEntity? + var cutscene_character: LuaEntity? + var index: uint + var gui: LuaGui + var opened_self: Boolean + var controller_type: controllers + var stashed_controller_type: controllers? + var game_view_settings: GameViewSettings + var minimap_enabled: Boolean + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var chat_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var name: String + var tag: String + var connected: Boolean + var admin: Boolean + var entity_copy_source: LuaEntity? + var afk_time: uint + var online_time: uint + var last_online: uint + var permission_group: LuaPermissionGroup? + var mod_settings: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var ticks_to_respawn: uint? + var display_resolution: DisplayResolution + var display_scale: double + var blueprint_to_setup: LuaItemStack + var render_mode: render_mode + var spectator: Boolean + var remove_unfiltered_items: Boolean + var infinity_inventory_filters: Array + var auto_sort_main_inventory: Boolean + var hand_location: ItemStackLocation +} + +external interface LuaProfiler { + fun reset() + fun stop() + fun restart() + fun add(other: LuaProfiler) + fun divide(number: double) + var valid: Boolean + var object_name: String /* "LuaProfiler" */ + fun help(): String +} + +external interface LuaProgrammableSpeakerControlBehavior : LuaControlBehavior { + var circuit_parameters: ProgrammableSpeakerCircuitParameters + var circuit_condition: CircuitConditionDefinition + var valid: Boolean + var object_name: String /* "LuaProgrammableSpeakerControlBehavior" */ + fun help(): String +} + +external interface LuaRCON { + fun print(message: Any /* JsTuple */) + fun print(message: String) + fun print(message: Number) + var object_name: String /* "LuaRCON" */ +} + +external interface LuaRailChainSignalControlBehavior : LuaControlBehavior { + var red_signal: SignalID + var orange_signal: SignalID + var green_signal: SignalID + var blue_signal: SignalID + var valid: Boolean + var object_name: String /* "LuaRailChainSignalControlBehavior" */ + fun help(): String +} + +external interface LuaRailPath { + var size: uint + var current: uint + var total_distance: double + var travelled_distance: double + var rails: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var valid: Boolean + var object_name: String /* "LuaRailPath" */ + fun help(): String +} + +external interface LuaRailSignalControlBehavior : LuaControlBehavior { + var red_signal: SignalID + var orange_signal: SignalID + var green_signal: SignalID + var close_signal: Boolean + var read_signal: Boolean + var circuit_condition: CircuitConditionDefinition + var valid: Boolean + var object_name: String /* "LuaRailSignalControlBehavior" */ + fun help(): String +} + +external interface LuaRandomGenerator { + fun re_seed(seed: uint) + @nativeInvoke + operator fun invoke(lower: int = definedExternally, upper: int = definedExternally): double + var valid: Boolean + var object_name: String /* "LuaRandomGenerator" */ + fun help(): String +} + +external interface LuaRecipe { + fun reload() + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var prototype: LuaRecipePrototype + var enabled: Boolean + var category: String + var ingredients: Array + var products: Array + var hidden: Boolean + var hidden_from_flow_stats: Boolean + var energy: double + var order: String + var group: LuaGroup + var subgroup: LuaGroup + var force: LuaForce + var valid: Boolean + var object_name: String /* "LuaRecipe" */ + fun help(): String +} + +external interface LuaRecipeCategoryPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaRecipeCategoryPrototype" */ + fun help(): String +} + +external interface LuaRecipePrototype { + var enabled: Boolean + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var category: String + var ingredients: Array + var products: Array + var main_product: dynamic /* FluidProduct? | OtherProduct? */ + get() = definedExternally + set(value) = definedExternally + var hidden: Boolean + var hidden_from_flow_stats: Boolean + var hidden_from_player_crafting: Boolean + var always_show_made_in: Boolean + var energy: double + var order: String + var group: LuaGroup + var subgroup: LuaGroup + var request_paste_multiplier: uint + var overload_multiplier: uint + var allow_inserter_overload: Boolean + var allow_as_intermediate: Boolean + var allow_intermediates: Boolean + var show_amount_in_title: Boolean + var always_show_products: Boolean + var emissions_multiplier: double + var allow_decomposition: Boolean + var unlock_results: Boolean + var valid: Boolean + var object_name: String /* "LuaRecipePrototype" */ + fun help(): String +} + +external interface LuaRemote { + fun add_interface(name: String, functions: Record Unit>) + fun remove_interface(name: String): Boolean + fun call(_interface: String, _function: String, vararg args: Any): Any + var interfaces: Record> + var object_name: String /* "LuaRemote" */ +} + +external interface `T$55` { + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var width: float + var gap_length: double? + get() = definedExternally + set(value) = definedExternally + var dash_length: double? + get() = definedExternally + set(value) = definedExternally + var from: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var from_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var to: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var to_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_on_ground: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$56` { + var text: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var target: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var scale: double? + get() = definedExternally + set(value) = definedExternally + var font: String? + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_on_ground: Boolean? + get() = definedExternally + set(value) = definedExternally + var orientation: RealOrientation? + get() = definedExternally + set(value) = definedExternally + var alignment: String? /* "left" | "right" | "center" */ + get() = definedExternally + set(value) = definedExternally + var vertical_alignment: String? /* "top" | "middle" | "baseline" | "bottom" */ + get() = definedExternally + set(value) = definedExternally + var scale_with_zoom: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$57` { + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var radius: double + var width: float? + get() = definedExternally + set(value) = definedExternally + var filled: Boolean + var target: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_on_ground: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$58` { + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var width: float? + get() = definedExternally + set(value) = definedExternally + var filled: Boolean + var left_top: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var left_top_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var right_bottom: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var right_bottom_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_on_ground: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$59` { + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var max_radius: double + var min_radius: double + var start_angle: float + var angle: float + var target: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_on_ground: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$60` { + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var vertices: Array + var target: dynamic /* Position? | LuaEntity? */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var orientation: RealOrientation? + get() = definedExternally + set(value) = definedExternally + var orientation_target: dynamic /* Position? | LuaEntity? */ + get() = definedExternally + set(value) = definedExternally + var orientation_target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var draw_on_ground: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$61` { + var sprite: dynamic /* String | */ + get() = definedExternally + set(value) = definedExternally + var orientation: RealOrientation? + get() = definedExternally + set(value) = definedExternally + var x_scale: double? + get() = definedExternally + set(value) = definedExternally + var y_scale: double? + get() = definedExternally + set(value) = definedExternally + var tint: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var render_layer: dynamic /* Number? | ? */ + get() = definedExternally + set(value) = definedExternally + var orientation_target: dynamic /* Position? | LuaEntity? */ + get() = definedExternally + set(value) = definedExternally + var orientation_target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var oriented_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var target: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$62` { + var sprite: dynamic /* String | */ + get() = definedExternally + set(value) = definedExternally + var orientation: RealOrientation? + get() = definedExternally + set(value) = definedExternally + var scale: float? + get() = definedExternally + set(value) = definedExternally + var intensity: float? + get() = definedExternally + set(value) = definedExternally + var minimum_darkness: float? + get() = definedExternally + set(value) = definedExternally + var oriented: Boolean? + get() = definedExternally + set(value) = definedExternally + var color: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var target: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$63` { + var animation: String + var orientation: RealOrientation? + get() = definedExternally + set(value) = definedExternally + var x_scale: double? + get() = definedExternally + set(value) = definedExternally + var y_scale: double? + get() = definedExternally + set(value) = definedExternally + var tint: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var render_layer: dynamic /* Number? | ? */ + get() = definedExternally + set(value) = definedExternally + var animation_speed: double? + get() = definedExternally + set(value) = definedExternally + var animation_offset: double? + get() = definedExternally + set(value) = definedExternally + var orientation_target: dynamic /* Position? | LuaEntity? */ + get() = definedExternally + set(value) = definedExternally + var orientation_target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var oriented_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var target: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var surface: dynamic /* uint | String | LuaSurface */ + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally + var forces: Array? + get() = definedExternally + set(value) = definedExternally + var players: Array? + get() = definedExternally + set(value) = definedExternally + var visible: Boolean? + get() = definedExternally + set(value) = definedExternally + var only_in_alt_mode: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaRendering { + fun draw_line(params: `T$55`): uint64 + fun draw_text(params: `T$56`): uint64 + fun draw_circle(params: `T$57`): uint64 + fun draw_rectangle(params: `T$58`): uint64 + fun draw_arc(params: `T$59`): uint64 + fun draw_polygon(params: `T$60`): uint64 + fun draw_sprite(params: `T$61`): uint64 + fun draw_light(params: `T$62`): uint64 + fun draw_animation(params: `T$63`): uint64 + fun destroy(id: uint64) + fun is_font_valid(font_name: String): Boolean + fun is_valid(id: uint64): Boolean + fun get_all_ids(mod_name: String = definedExternally): Array + fun clear(mod_name: String = definedExternally) + fun get_type(id: uint64): String /* "text" | "line" | "circle" | "rectangle" | "arc" | "polygon" | "sprite" | "light" | "animation" */ + fun bring_to_front(id: uint64) + fun get_surface(id: uint64): LuaSurface + fun get_time_to_live(id: uint64): uint + fun set_time_to_live(id: uint64, time_to_live: uint) + fun get_forces(id: uint64): Array? + fun set_forces(id: uint64, forces: Array) + fun get_players(id: uint64): Array? + fun set_players(id: uint64, players: Array) + fun get_visible(id: uint64): Boolean + fun set_visible(id: uint64, visible: Boolean) + fun get_draw_on_ground(id: uint64): Boolean + fun set_draw_on_ground(id: uint64, draw_on_ground: Boolean) + fun get_only_in_alt_mode(id: uint64): Boolean + fun set_only_in_alt_mode(id: uint64, only_in_alt_mode: Boolean) + fun get_color(id: uint64): ColorTable? + fun set_color(id: uint64, color: ColorTable) + fun set_color(id: uint64, color: Any /* JsTuple */) + fun get_width(id: uint64): float? + fun set_width(id: uint64, width: float) + fun get_from(id: uint64): ScriptRenderTarget? + fun set_from(id: uint64, from: Position, from_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_from(id: uint64, from: Position) + fun set_from(id: uint64, from: LuaEntity, from_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_from(id: uint64, from: LuaEntity) + fun get_to(id: uint64): ScriptRenderTarget? + fun set_to(id: uint64, to: Position, to_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_to(id: uint64, to: Position) + fun set_to(id: uint64, to: LuaEntity, to_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_to(id: uint64, to: LuaEntity) + fun get_dash_length(id: uint64): double? + fun set_dash_length(id: uint64, dash_length: double) + fun get_gap_length(id: uint64): double? + fun set_gap_length(id: uint64, gap_length: double) + fun set_dashes(id: uint64, dash_length: double, gap_length: double) + fun get_target(id: uint64): ScriptRenderTarget? + fun set_target(id: uint64, target: Position, target_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_target(id: uint64, target: Position) + fun set_target(id: uint64, target: LuaEntity, target_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_target(id: uint64, target: LuaEntity) + fun get_orientation(id: uint64): RealOrientation? + fun set_orientation(id: uint64, orientation: RealOrientation) + fun get_scale(id: uint64): double? + fun set_scale(id: uint64, scale: double) + fun get_text(id: uint64): dynamic /* JsTuple | String? | Number? */ + fun set_text(id: uint64, text: Any /* JsTuple */) + fun set_text(id: uint64, text: String) + fun set_text(id: uint64, text: Number) + fun get_font(id: uint64): String? + fun set_font(id: uint64, font: String) + fun get_alignment(id: uint64): String? + fun set_alignment(id: uint64, alignment: String /* "left" | "right" | "center" */) + fun get_vertical_alignment(id: uint64): String? + fun set_vertical_alignment(id: uint64, alignment: String /* "top" | "middle" | "baseline" | "bottom" */) + fun get_scale_with_zoom(id: uint64): Boolean? + fun set_scale_with_zoom(id: uint64, scale_with_zoom: Boolean) + fun get_filled(id: uint64): Boolean? + fun set_filled(id: uint64, filled: Boolean) + fun get_radius(id: uint64): double? + fun set_radius(id: uint64, radius: double) + fun get_left_top(id: uint64): ScriptRenderTarget? + fun set_left_top(id: uint64, left_top: Position, left_top_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_left_top(id: uint64, left_top: Position) + fun set_left_top(id: uint64, left_top: LuaEntity, left_top_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_left_top(id: uint64, left_top: LuaEntity) + fun get_right_bottom(id: uint64): ScriptRenderTarget? + fun set_right_bottom(id: uint64, right_bottom: Position, right_bottom_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_right_bottom(id: uint64, right_bottom: Position) + fun set_right_bottom(id: uint64, right_bottom: LuaEntity, right_bottom_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_right_bottom(id: uint64, right_bottom: LuaEntity) + fun set_corners(id: uint64, left_top: Position, left_top_offset: dynamic /* typealias Vector = dynamic */, right_bottom: Position, right_bottom_offset: dynamic /* typealias Vector = dynamic */) + fun set_corners(id: uint64, left_top: Position, left_top_offset: dynamic /* typealias Vector = dynamic */, right_bottom: LuaEntity, right_bottom_offset: dynamic /* typealias Vector = dynamic */) + fun set_corners(id: uint64, left_top: LuaEntity, left_top_offset: dynamic /* typealias Vector = dynamic */, right_bottom: Position, right_bottom_offset: dynamic /* typealias Vector = dynamic */) + fun set_corners(id: uint64, left_top: LuaEntity, left_top_offset: dynamic /* typealias Vector = dynamic */, right_bottom: LuaEntity, right_bottom_offset: dynamic /* typealias Vector = dynamic */) + fun get_max_radius(id: uint64): double? + fun set_max_radius(id: uint64, max_radius: double) + fun get_min_radius(id: uint64): double? + fun set_min_radius(id: uint64, min_radius: double) + fun get_start_angle(id: uint64): float? + fun set_start_angle(id: uint64, start_angle: float) + fun get_angle(id: uint64): float? + fun set_angle(id: uint64, angle: float) + fun get_vertices(id: uint64): Array? + fun set_vertices(id: uint64, vertices: Array) + fun get_sprite(id: uint64): dynamic /* String? | ? */ + fun set_sprite(id: uint64, sprite: String) + fun set_sprite(id: uint64, sprite: ) + fun get_x_scale(id: uint64): double? + fun set_x_scale(id: uint64, x_scale: double) + fun get_y_scale(id: uint64): double? + fun set_y_scale(id: uint64, y_scale: double) + fun get_render_layer(id: uint64): dynamic /* Number? | ? */ + fun set_render_layer(id: uint64, render_layer: Number) + fun set_render_layer(id: uint64, render_layer: ) + fun get_orientation_target(id: uint64): ScriptRenderTarget? + fun set_orientation_target(id: uint64, orientation_target: Position, orientation_target_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_orientation_target(id: uint64, orientation_target: Position) + fun set_orientation_target(id: uint64, orientation_target: LuaEntity, orientation_target_offset: dynamic /* typealias Vector = dynamic */ = definedExternally) + fun set_orientation_target(id: uint64, orientation_target: LuaEntity) + fun get_oriented_offset(id: uint64): dynamic /* typealias Vector = dynamic */ + fun set_oriented_offset(id: uint64, oriented_offset: dynamic /* typealias Vector = dynamic */) + fun get_intensity(id: uint64): float? + fun set_intensity(id: uint64, intensity: float) + fun get_minimum_darkness(id: uint64): float? + fun set_minimum_darkness(id: uint64, minimum_darkness: float) + fun get_oriented(id: uint64): Boolean? + fun set_oriented(id: uint64, oriented: Boolean) + fun get_animation(id: uint64): String? + fun set_animation(id: uint64, animation: String) + fun get_animation_speed(id: uint64): double? + fun set_animation_speed(id: uint64, animation_speed: double) + fun get_animation_offset(id: uint64): double? + fun set_animation_offset(id: uint64, animation_offset: double) + var object_name: String /* "LuaRendering" */ +} + +external interface LuaResourceCategoryPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaResourceCategoryPrototype" */ + fun help(): String +} + +external interface LuaRoboportControlBehavior : LuaControlBehavior { + var read_logistics: Boolean + var read_robot_stats: Boolean + var available_logistic_output_signal: SignalID + var total_logistic_output_signal: SignalID + var available_construction_output_signal: SignalID + var total_construction_output_signal: SignalID + var valid: Boolean + var object_name: String /* "LuaRoboportControlBehavior" */ + fun help(): String +} + +external interface LuaSettings { + fun get_player_settings(player: uint): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_player_settings(player: String): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + fun get_player_settings(player: LuaPlayer): LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var startup: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var global: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var player: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var object_name: String /* "LuaSettings" */ +} + +external interface LuaShortcutPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var action: String + var item_to_spawn: LuaItemPrototype + var technology_to_unlock: LuaTechnologyPrototype + var toggleable: Boolean + var associated_control_input: String + var valid: Boolean + var object_name: String /* "LuaShortcutPrototype" */ + fun help(): String +} + +external interface LuaStorageTankControlBehavior : LuaControlBehavior { + var valid: Boolean + var object_name: String /* "LuaStorageTankControlBehavior" */ + fun help(): String +} + +external interface LuaStyle { + var gui: LuaGui + var name: String + var minimal_width: int + var maximal_width: int + var minimal_height: int + var maximal_height: int + var natural_width: int + var natural_height: int + var top_padding: int + var right_padding: int + var bottom_padding: int + var left_padding: int + var top_margin: int + var right_margin: int + var bottom_margin: int + var left_margin: int + var horizontal_align: String /* "left" | "center" | "right" */ + var vertical_align: String /* "top" | "center" | "bottom" */ + var font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var font: String + var top_cell_padding: int + var right_cell_padding: int + var bottom_cell_padding: int + var left_cell_padding: int + var horizontally_stretchable: Boolean + var vertically_stretchable: Boolean + var horizontally_squashable: Boolean + var vertically_squashable: Boolean + var rich_text_setting: rich_text_setting + var hovered_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var clicked_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var disabled_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var pie_progress_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var clicked_vertical_offset: int + var selected_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var selected_hovered_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var selected_clicked_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var strikethrough_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var horizontal_spacing: int + var vertical_spacing: int + var use_header_filler: Boolean + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var column_alignments: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */ + var single_line: Boolean + var extra_top_padding_when_activated: int + var extra_bottom_padding_when_activated: int + var extra_left_padding_when_activated: int + var extra_right_padding_when_activated: int + var extra_top_margin_when_activated: int + var extra_bottom_margin_when_activated: int + var extra_left_margin_when_activated: int + var extra_right_margin_when_activated: int + var stretch_image_to_widget_size: Boolean + var badge_font: String + var badge_horizontal_spacing: int + var default_badge_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var selected_badge_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var disabled_badge_font_color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally +} + +external interface BaseSurfaceCreateEntity { + var name: String + var position: Position + var direction: direction? + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally + var target: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var source: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var fast_replace: Boolean? + get() = definedExternally + set(value) = definedExternally + var player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var spill: Boolean? + get() = definedExternally + set(value) = definedExternally + var raise_built: Boolean? + get() = definedExternally + set(value) = definedExternally + var create_build_effect_smoke: Boolean? + get() = definedExternally + set(value) = definedExternally + var spawn_decorations: Boolean? + get() = definedExternally + set(value) = definedExternally + var move_stuck_players: Boolean? + get() = definedExternally + set(value) = definedExternally + var item: LuaItemStack? + get() = definedExternally + set(value) = definedExternally +} + +external interface AssemblingMachineSurfaceCreateEntity : BaseSurfaceCreateEntity { + var recipe: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface BeamSurfaceCreateEntity : BaseSurfaceCreateEntity { + var target_position: Position? + get() = definedExternally + set(value) = definedExternally + var source_position: Position? + get() = definedExternally + set(value) = definedExternally + var max_length: uint? + get() = definedExternally + set(value) = definedExternally + var duration: uint? + get() = definedExternally + set(value) = definedExternally + var source_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ContainerSurfaceCreateEntity : BaseSurfaceCreateEntity { + var bar: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface CliffSurfaceCreateEntity : BaseSurfaceCreateEntity { + var cliff_orientation: String? /* "west-to-east" | "north-to-south" | "east-to-west" | "south-to-north" | "west-to-north" | "north-to-east" | "east-to-south" | "south-to-west" | "west-to-south" | "north-to-west" | "east-to-north" | "south-to-east" | "west-to-none" | "none-to-east" | "east-to-none" | "none-to-west" | "north-to-none" | "none-to-south" | "south-to-none" | "none-to-north" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlyingTextSurfaceCreateEntity : BaseSurfaceCreateEntity { + var text: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var color: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var render_player_index: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface EntityGhostSurfaceCreateEntity : BaseSurfaceCreateEntity { + var inner_name: String + var expires: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface FireSurfaceCreateEntity : BaseSurfaceCreateEntity { + var initial_ground_flame_count: uint8? + get() = definedExternally + set(value) = definedExternally +} + +external interface InserterSurfaceCreateEntity : BaseSurfaceCreateEntity { + var conditions: InserterCircuitConditions + var filters: Array +} + +external interface ItemEntitySurfaceCreateEntity : BaseSurfaceCreateEntity { + var stack: dynamic /* String | ItemStackDefinition */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ItemRequestProxySurfaceCreateEntity : BaseSurfaceCreateEntity { + var modules: Record +} + +external interface RollingStockSurfaceCreateEntity : BaseSurfaceCreateEntity { + var orientation: RealOrientation? + get() = definedExternally + set(value) = definedExternally + var color: dynamic /* ColorTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally +} + +external interface LocomotiveSurfaceCreateEntity : BaseSurfaceCreateEntity { + var snap_to_train_stop: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface LogisticContainerSurfaceCreateEntity : BaseSurfaceCreateEntity { + var request_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface ParticleSurfaceCreateEntity : BaseSurfaceCreateEntity { + var movement: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var height: float + var vertical_speed: float + var frame_speed: float +} + +external interface ArtilleryFlareSurfaceCreateEntity : BaseSurfaceCreateEntity { + var movement: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var height: float + var vertical_speed: float + var frame_speed: float +} + +external interface ProjectileSurfaceCreateEntity : BaseSurfaceCreateEntity { + var speed: double + var max_range: double +} + +external interface ResourceSurfaceCreateEntity : BaseSurfaceCreateEntity { + var amount: uint + var enable_tree_removal: Boolean? + get() = definedExternally + set(value) = definedExternally + var enable_cliff_removal: Boolean? + get() = definedExternally + set(value) = definedExternally + var snap_to_tile_center: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface UndergroundBeltSurfaceCreateEntity : BaseSurfaceCreateEntity { + var type: String? /* "output" | "input" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ProgrammableSpeakerSurfaceCreateEntity : BaseSurfaceCreateEntity { + var parameters: ProgrammableSpeakerParameters? + get() = definedExternally + set(value) = definedExternally + var alert_parameters: ProgrammableSpeakerAlertParameters? + get() = definedExternally + set(value) = definedExternally +} + +external interface CharacterCorpseSurfaceCreateEntity : BaseSurfaceCreateEntity { + var inventory_size: uint? + get() = definedExternally + set(value) = definedExternally + var player_index: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface HighlightBoxSurfaceCreateEntity : BaseSurfaceCreateEntity { + var bounding_box: dynamic /* BoundingBoxTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var box_type: String? /* "entity" | "not-allowed" | "electricity" | "pair" | "copy" | "train-visualization" | "logistics" | "blueprint-snap-rectangle" */ + get() = definedExternally + set(value) = definedExternally + var render_player_index: uint? + get() = definedExternally + set(value) = definedExternally + var blink_interval: uint? + get() = definedExternally + set(value) = definedExternally + var time_to_live: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface SpeechBubbleSurfaceCreateEntity : BaseSurfaceCreateEntity { + var text: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var lifetime: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface SimpleEntityWithOwnerSurfaceCreateEntity : BaseSurfaceCreateEntity { + var render_player_index: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface SimpleEntityWithForceSurfaceCreateEntity : BaseSurfaceCreateEntity { + var render_player_index: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$64` { + var name: String + var position: Position + var direction: direction? + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally + var build_check_type: build_check_type? + get() = definedExternally + set(value) = definedExternally + var forced: Boolean? + get() = definedExternally + set(value) = definedExternally + var inner_name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$65` { + var name: String + var position: Position + var direction: direction? + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$66` { + var area: dynamic /* BoundingBoxTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var radius: double? + get() = definedExternally + set(value) = definedExternally + var name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var type: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var ghost_name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var ghost_type: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var direction: dynamic /* defines.direction? | Array? */ + get() = definedExternally + set(value) = definedExternally + var collision_mask: dynamic /* "ground-tile" | "water-tile" | "resource-layer" | "doodad-layer" | "floor-layer" | "item-layer" | "ghost-layer" | "object-layer" | "player-layer" | "train-layer" | "rail-layer" | "transport-belt-layer" | "not-setup" | ? | Array? */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? | Array? */ + get() = definedExternally + set(value) = definedExternally + var to_be_deconstructed: Boolean? + get() = definedExternally + set(value) = definedExternally + var to_be_upgraded: Boolean? + get() = definedExternally + set(value) = definedExternally + var limit: uint? + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$67` { + var area: dynamic /* BoundingBoxTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var radius: double? + get() = definedExternally + set(value) = definedExternally + var name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var limit: uint? + get() = definedExternally + set(value) = definedExternally + var has_hidden_tile: Boolean? + get() = definedExternally + set(value) = definedExternally + var collision_mask: dynamic /* "ground-tile" | "water-tile" | "resource-layer" | "doodad-layer" | "floor-layer" | "item-layer" | "ghost-layer" | "object-layer" | "player-layer" | "train-layer" | "rail-layer" | "transport-belt-layer" | "not-setup" | ? | Array? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$68` { + var area: dynamic /* BoundingBoxTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var radius: double? + get() = definedExternally + set(value) = definedExternally + var name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var type: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var ghost_name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var ghost_type: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var direction: dynamic /* defines.direction? | Array? */ + get() = definedExternally + set(value) = definedExternally + var collision_mask: dynamic /* "ground-tile" | "water-tile" | "resource-layer" | "doodad-layer" | "floor-layer" | "item-layer" | "ghost-layer" | "object-layer" | "player-layer" | "train-layer" | "rail-layer" | "transport-belt-layer" | "not-setup" | ? | Array? */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? | Array? */ + get() = definedExternally + set(value) = definedExternally + var to_be_deconstructed: Boolean? + get() = definedExternally + set(value) = definedExternally + var to_be_upgraded: Boolean? + get() = definedExternally + set(value) = definedExternally + var limit: uint? + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$69` { + var area: dynamic /* BoundingBoxTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var radius: double? + get() = definedExternally + set(value) = definedExternally + var name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var limit: uint? + get() = definedExternally + set(value) = definedExternally + var has_hidden_tile: Boolean? + get() = definedExternally + set(value) = definedExternally + var collision_mask: dynamic /* "ground-tile" | "water-tile" | "resource-layer" | "doodad-layer" | "floor-layer" | "item-layer" | "ghost-layer" | "object-layer" | "player-layer" | "train-layer" | "rail-layer" | "transport-belt-layer" | "not-setup" | ? | Array? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$70` { + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* LuaForce | String */ + get() = definedExternally + set(value) = definedExternally + var condition: String /* "all" | "enemy" | "ally" | "friend" | "not-friend" | "same" | "not-same" */ +} + +external interface `T$71` { + var position: Position + var max_distance: double + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$72` { + var command: dynamic /* AttackCommand | GoToLocationCommand | CompoundCommand | GroupCommand | AttackAreaCommand | WanderCommand | StopCommand | FleeCommand | BuildBaseCommand */ + get() = definedExternally + set(value) = definedExternally + var unit_count: uint + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally + var unit_search_distance: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$73` { + var name: String + var position: Position +} + +external interface `T$74` { + var name: String + var position: Position + var movement: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var height: float + var vertical_speed: float + var frame_speed: float +} + +external interface `T$75` { + var position: Position + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$76` { + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var skip_fog_of_war: Boolean? + get() = definedExternally + set(value) = definedExternally + var item: LuaItemStack? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$77` { + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var player: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally + var skip_fog_of_war: Boolean? + get() = definedExternally + set(value) = definedExternally + var item: LuaItemStack +} + +external interface `T$78` { + var area: dynamic /* BoundingBoxTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: dynamic /* TilePositionTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var name: dynamic /* String? | Array? | LuaDecorativePrototype? | Array? */ + get() = definedExternally + set(value) = definedExternally + var limit: uint? + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$79` { + var check_collision: Boolean? + get() = definedExternally + set(value) = definedExternally + var decoratives: Array +} + +external interface `T$80` { + var area: dynamic /* BoundingBoxTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: dynamic /* TilePositionTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var name: dynamic /* String? | Array? | LuaDecorativePrototype? | Array? */ + get() = definedExternally + set(value) = definedExternally + var limit: uint? + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$81` { + var source_area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var destination_area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var destination_surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally + var destination_force: dynamic /* LuaForce? | String? */ + get() = definedExternally + set(value) = definedExternally + var clone_tiles: Boolean? + get() = definedExternally + set(value) = definedExternally + var clone_entities: Boolean? + get() = definedExternally + set(value) = definedExternally + var clone_decoratives: Boolean? + get() = definedExternally + set(value) = definedExternally + var clear_destination_entities: Boolean? + get() = definedExternally + set(value) = definedExternally + var clear_destination_decoratives: Boolean? + get() = definedExternally + set(value) = definedExternally + var expand_map: Boolean? + get() = definedExternally + set(value) = definedExternally + var create_build_effect_smoke: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$82` { + var source_offset: dynamic /* TilePositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var destination_offset: dynamic /* TilePositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var source_positions: Array */> + var destination_surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally + var destination_force: dynamic /* LuaForce? | String? */ + get() = definedExternally + set(value) = definedExternally + var clone_tiles: Boolean? + get() = definedExternally + set(value) = definedExternally + var clone_entities: Boolean? + get() = definedExternally + set(value) = definedExternally + var clone_decoratives: Boolean? + get() = definedExternally + set(value) = definedExternally + var clear_destination_entities: Boolean? + get() = definedExternally + set(value) = definedExternally + var clear_destination_decoratives: Boolean? + get() = definedExternally + set(value) = definedExternally + var expand_map: Boolean? + get() = definedExternally + set(value) = definedExternally + var manual_collision_mode: Boolean? + get() = definedExternally + set(value) = definedExternally + var create_build_effect_smoke: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$83` { + var entities: Array + var destination_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var destination_surface: dynamic /* uint? | String? | LuaSurface? */ + get() = definedExternally + set(value) = definedExternally + var destination_force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally + var snap_to_grid: Boolean? + get() = definedExternally + set(value) = definedExternally + var create_build_effect_smoke: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$84` { + var bounding_box: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var collision_mask: dynamic /* CollisionMask | Array */ + get() = definedExternally + set(value) = definedExternally + var start: Position + var goal: Position + var force: dynamic /* String | LuaForce */ + get() = definedExternally + set(value) = definedExternally + var radius: double? + get() = definedExternally + set(value) = definedExternally + var pathfind_flags: PathfinderFlags? + get() = definedExternally + set(value) = definedExternally + var can_open_gates: Boolean? + get() = definedExternally + set(value) = definedExternally + var path_resolution_modifier: int? + get() = definedExternally + set(value) = definedExternally + var entity_to_ignore: LuaEntity? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$85` { + var name: dynamic /* String? | Array? */ + get() = definedExternally + set(value) = definedExternally + var force: dynamic /* String? | LuaForce? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaSurface { + fun get_pollution(position: Position): double + fun can_place_entity(params: `T$64`): Boolean + fun can_fast_replace(params: `T$65`): Boolean + fun find_entity(entity: String, position: Position): LuaEntity? + fun find_entities(area: BoundingBoxTable = definedExternally): Array + fun find_entities(): Array + fun find_entities(area: Any /* JsTuple */ = definedExternally): Array + fun find_entities_filtered(params: `T$66`): Array + fun find_tiles_filtered(params: `T$67`): Array + fun count_entities_filtered(params: `T$68`): uint + fun count_tiles_filtered(params: `T$69`): uint + fun find_non_colliding_position(name: String, center: Position, radius: double, precision: double, force_to_tile_center: Boolean = definedExternally): PositionTable? + fun find_non_colliding_position_in_box(name: String, search_space: BoundingBoxTable, precision: double, force_to_tile_center: Boolean = definedExternally): PositionTable? + fun find_non_colliding_position_in_box(name: String, search_space: BoundingBoxTable, precision: double): PositionTable? + fun find_non_colliding_position_in_box(name: String, search_space: Any /* JsTuple */, precision: double, force_to_tile_center: Boolean = definedExternally): PositionTable? + fun find_non_colliding_position_in_box(name: String, search_space: Any /* JsTuple */, precision: double): PositionTable? + fun spill_item_stack(position: Position, items: String, enable_looted: Boolean = definedExternally, force: LuaForce = definedExternally, allow_belts: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: String): Array + fun spill_item_stack(position: Position, items: String, enable_looted: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: String, enable_looted: Boolean = definedExternally, force: LuaForce = definedExternally): Array + fun spill_item_stack(position: Position, items: String, enable_looted: Boolean = definedExternally, force: String = definedExternally, allow_belts: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: String, enable_looted: Boolean = definedExternally, force: String = definedExternally): Array + fun spill_item_stack(position: Position, items: ItemStackDefinition, enable_looted: Boolean = definedExternally, force: LuaForce = definedExternally, allow_belts: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: ItemStackDefinition): Array + fun spill_item_stack(position: Position, items: ItemStackDefinition, enable_looted: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: ItemStackDefinition, enable_looted: Boolean = definedExternally, force: LuaForce = definedExternally): Array + fun spill_item_stack(position: Position, items: ItemStackDefinition, enable_looted: Boolean = definedExternally, force: String = definedExternally, allow_belts: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: ItemStackDefinition, enable_looted: Boolean = definedExternally, force: String = definedExternally): Array + fun spill_item_stack(position: Position, items: LuaItemStack, enable_looted: Boolean = definedExternally, force: LuaForce = definedExternally, allow_belts: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: LuaItemStack): Array + fun spill_item_stack(position: Position, items: LuaItemStack, enable_looted: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: LuaItemStack, enable_looted: Boolean = definedExternally, force: LuaForce = definedExternally): Array + fun spill_item_stack(position: Position, items: LuaItemStack, enable_looted: Boolean = definedExternally, force: String = definedExternally, allow_belts: Boolean = definedExternally): Array + fun spill_item_stack(position: Position, items: LuaItemStack, enable_looted: Boolean = definedExternally, force: String = definedExternally): Array + fun find_enemy_units(center: Position, radius: double, force: LuaForce = definedExternally): Array + fun find_enemy_units(center: Position, radius: double): Array + fun find_enemy_units(center: Position, radius: double, force: String = definedExternally): Array + fun find_units(params: `T$70`): Array + fun find_nearest_enemy(params: `T$71`): LuaEntity? + fun find_nearest_enemy_entity_with_owner(params: `T$71`): LuaEntity? + fun set_multi_command(params: `T$72`): uint + fun create_entity(params: Any /* AssemblingMachineSurfaceCreateEntity | BeamSurfaceCreateEntity | ContainerSurfaceCreateEntity | CliffSurfaceCreateEntity | FlyingTextSurfaceCreateEntity | EntityGhostSurfaceCreateEntity | FireSurfaceCreateEntity | InserterSurfaceCreateEntity | ItemEntitySurfaceCreateEntity | ItemRequestProxySurfaceCreateEntity | RollingStockSurfaceCreateEntity | LocomotiveSurfaceCreateEntity | LogisticContainerSurfaceCreateEntity | ParticleSurfaceCreateEntity | ArtilleryFlareSurfaceCreateEntity | ProjectileSurfaceCreateEntity | ResourceSurfaceCreateEntity | UndergroundBeltSurfaceCreateEntity | ProgrammableSpeakerSurfaceCreateEntity | CharacterCorpseSurfaceCreateEntity | HighlightBoxSurfaceCreateEntity | SpeechBubbleSurfaceCreateEntity | SimpleEntityWithOwnerSurfaceCreateEntity | SimpleEntityWithForceSurfaceCreateEntity */): LuaEntity? + fun create_trivial_smoke(params: `T$73`) + fun create_particle(params: `T$74`) + fun create_unit_group(params: `T$75`): LuaUnitGroup + fun build_enemy_base(position: Position, unit_count: uint, force: String = definedExternally) + fun build_enemy_base(position: Position, unit_count: uint) + fun build_enemy_base(position: Position, unit_count: uint, force: LuaForce = definedExternally) + fun get_tile(x: int, y: int): LuaTile + fun set_tiles(tiles: Array, correct_tiles: Boolean = definedExternally, remove_colliding_entities: Boolean = definedExternally, remove_colliding_decoratives: Boolean = definedExternally, raise_event: Boolean = definedExternally) + fun set_tiles(tiles: Array) + fun set_tiles(tiles: Array, correct_tiles: Boolean = definedExternally) + fun set_tiles(tiles: Array, correct_tiles: Boolean = definedExternally, remove_colliding_entities: Boolean = definedExternally) + fun set_tiles(tiles: Array, correct_tiles: Boolean = definedExternally, remove_colliding_entities: Boolean = definedExternally, remove_colliding_decoratives: Boolean = definedExternally) + fun set_tiles(tiles: Array, correct_tiles: Boolean = definedExternally, remove_colliding_entities: String = definedExternally, remove_colliding_decoratives: Boolean = definedExternally, raise_event: Boolean = definedExternally) + fun set_tiles(tiles: Array, correct_tiles: Boolean = definedExternally, remove_colliding_entities: String = definedExternally) + fun set_tiles(tiles: Array, correct_tiles: Boolean = definedExternally, remove_colliding_entities: String = definedExternally, remove_colliding_decoratives: Boolean = definedExternally) + fun pollute(source: Position, amount: double) + fun get_chunks(): LuaChunkIterator + fun is_chunk_generated(position: ChunkPositionTable): Boolean + fun is_chunk_generated(position: Any /* JsTuple */): Boolean + fun request_to_generate_chunks(position: Position, radius: uint) + fun force_generate_chunk_requests() + fun set_chunk_generated_status(position: ChunkPositionTable, status: chunk_generated_status) + fun set_chunk_generated_status(position: Any /* JsTuple */, status: chunk_generated_status) + fun find_logistic_network_by_position(position: Position, force: String): LuaLogisticNetwork? + fun find_logistic_network_by_position(position: Position, force: LuaForce): LuaLogisticNetwork? + fun find_logistic_networks_by_construction_area(position: Position, force: String): Array + fun find_logistic_networks_by_construction_area(position: Position, force: LuaForce): Array + fun deconstruct_area(params: `T$76`) + fun cancel_deconstruct_area(params: `T$76`) + fun upgrade_area(params: `T$77`) + fun cancel_upgrade_area(params: `T$76`) + fun get_hidden_tile(position: TilePositionTable): String? + fun get_hidden_tile(position: Any /* JsTuple */): String? + fun set_hidden_tile(position: TilePositionTable, tile: String?) + fun set_hidden_tile(position: TilePositionTable, tile: LuaTilePrototype?) + fun set_hidden_tile(position: Any /* JsTuple */, tile: String?) + fun set_hidden_tile(position: Any /* JsTuple */, tile: LuaTilePrototype?) + fun get_connected_tiles(position: Position, tiles: Array): Array + fun delete_chunk(position: ChunkPositionTable) + fun delete_chunk(position: Any /* JsTuple */) + fun regenerate_entity(entities: String = definedExternally, chunks: Array */> = definedExternally) + fun regenerate_entity() + fun regenerate_entity(entities: String = definedExternally) + fun regenerate_entity(entities: Array = definedExternally, chunks: Array */> = definedExternally) + fun regenerate_entity(entities: Array = definedExternally) + fun regenerate_decorative(decoratives: String = definedExternally, chunks: Array */> = definedExternally) + fun regenerate_decorative() + fun regenerate_decorative(decoratives: String = definedExternally) + fun regenerate_decorative(decoratives: Array = definedExternally, chunks: Array */> = definedExternally) + fun regenerate_decorative(decoratives: Array = definedExternally) + fun print(message: Any /* JsTuple */, color: ColorTable = definedExternally) + fun print(message: Any /* JsTuple */) + fun print(message: Any /* JsTuple */, color: Any /* JsTuple */ = definedExternally) + fun print(message: String, color: ColorTable = definedExternally) + fun print(message: String) + fun print(message: String, color: Any /* JsTuple */ = definedExternally) + fun print(message: Number, color: ColorTable = definedExternally) + fun print(message: Number) + fun print(message: Number, color: Any /* JsTuple */ = definedExternally) + fun destroy_decoratives(params: `T$78`) + fun create_decoratives(params: `T$79`) + fun find_decoratives_filtered(params: `T$80`): Array + fun get_trains(force: String = definedExternally): Array + fun get_trains(): Array + fun get_trains(force: LuaForce = definedExternally): Array + fun clear_pollution() + fun play_sound(params: `T$34`) + fun get_resource_counts(): Record + fun get_random_chunk(): ChunkPositionTable + fun clone_area(params: `T$81`) + fun clone_brush(params: `T$82`) + fun clone_entities(params: `T$83`) + fun clear(ignore_characters: Boolean = definedExternally) + fun request_path(params: `T$84`): uint + fun get_script_areas(name: String = definedExternally): Array + fun get_script_area(key: String = definedExternally): ScriptArea + fun get_script_area(): ScriptArea + fun get_script_area(key: uint = definedExternally): ScriptArea + fun edit_script_area(id: uint, area: ScriptArea) + fun add_script_area(area: ScriptArea): uint + fun remove_script_area(id: uint): Boolean + fun get_script_positions(name: String = definedExternally): Array + fun get_script_position(key: String = definedExternally): ScriptPosition + fun get_script_position(): ScriptPosition + fun get_script_position(key: uint = definedExternally): ScriptPosition + fun edit_script_position(id: uint, area: ScriptPosition) + fun add_script_position(area: ScriptPosition): uint + fun remove_script_position(id: uint): Boolean + fun get_map_exchange_string(): String + fun get_starting_area_radius(): double + fun get_closest(position: Position, entities: Array): LuaEntity + fun get_train_stops(params: `T$85` = definedExternally): Array + fun get_total_pollution(): double + fun entity_prototype_collides(prototype: LuaEntity, position: Position, use_map_generation_bounding_box: Boolean, direction: direction = definedExternally) + fun entity_prototype_collides(prototype: LuaEntity, position: Position, use_map_generation_bounding_box: Boolean) + fun entity_prototype_collides(prototype: LuaEntityPrototype, position: Position, use_map_generation_bounding_box: Boolean, direction: direction = definedExternally) + fun entity_prototype_collides(prototype: LuaEntityPrototype, position: Position, use_map_generation_bounding_box: Boolean) + fun entity_prototype_collides(prototype: String, position: Position, use_map_generation_bounding_box: Boolean, direction: direction = definedExternally) + fun entity_prototype_collides(prototype: String, position: Position, use_map_generation_bounding_box: Boolean) + fun decorative_prototype_collides(prototype: String, position: Position) + fun calculate_tile_properties(property_names: Array, positions: Array): Record> + fun get_entities_with_force(position: ChunkPositionTable, force: LuaForce): Array + fun get_entities_with_force(position: ChunkPositionTable, force: String): Array + fun get_entities_with_force(position: Any /* JsTuple */, force: LuaForce): Array + fun get_entities_with_force(position: Any /* JsTuple */, force: String): Array + fun build_checkerboard(area: BoundingBoxTable) + fun build_checkerboard(area: Any /* JsTuple */) + var name: String + var index: uint + var map_gen_settings: MapGenSettings + var generate_with_lab_tiles: Boolean + var always_day: Boolean + var daytime: float + var darkness: float + var wind_speed: double + var wind_orientation: RealOrientation + var wind_orientation_change: double + var peaceful_mode: Boolean + var freeze_daytime: Boolean + var ticks_per_day: uint + var dusk: double + var dawn: double + var evening: double + var morning: double + var solar_power_multiplier: double + var min_brightness: double + var brightness_visual_weights: dynamic /* ColorModifierTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var show_clouds: Boolean + var valid: Boolean + var object_name: String /* "LuaSurface" */ + fun help(): String +} + +external interface LuaTechnology { + fun reload() + var force: LuaForce + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var prototype: LuaTechnologyPrototype + var enabled: Boolean + var visible_when_disabled: Boolean + var upgrade: Boolean + var researched: Boolean + var prerequisites: Record + var research_unit_ingredients: Array + var effects: Array + var research_unit_count: uint + var research_unit_energy: double + var order: String + var level: uint + var research_unit_count_formula: String? + var valid: Boolean + var object_name: String /* "LuaTechnology" */ + fun help(): String +} + +external interface LuaTechnologyPrototype { + var name: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var enabled: Boolean + var hidden: Boolean + var visible_when_disabled: Boolean + var ignore_tech_cost_multiplier: Boolean + var upgrade: Boolean + var prerequisites: Record + var research_unit_ingredients: Array + var effects: Array + var research_unit_count: uint + var research_unit_energy: double + var order: String + var level: uint + var max_level: uint + var research_unit_count_formula: String? + var valid: Boolean + var object_name: String /* "LuaTechnologyPrototype" */ + fun help(): String +} + +external interface LuaTile { + fun collides_with(layer: String /* "ground-tile" | "water-tile" | "resource-layer" | "doodad-layer" | "floor-layer" | "item-layer" | "ghost-layer" | "object-layer" | "player-layer" | "train-layer" | "rail-layer" | "transport-belt-layer" | "not-setup" */): Boolean + fun collides_with(layer: ): Boolean + fun to_be_deconstructed(): Boolean + fun order_deconstruction(force: String, player: uint = definedExternally): LuaEntity? + fun order_deconstruction(force: String): LuaEntity? + fun order_deconstruction(force: String, player: String = definedExternally): LuaEntity? + fun order_deconstruction(force: String, player: LuaPlayer = definedExternally): LuaEntity? + fun order_deconstruction(force: LuaForce, player: uint = definedExternally): LuaEntity? + fun order_deconstruction(force: LuaForce): LuaEntity? + fun order_deconstruction(force: LuaForce, player: String = definedExternally): LuaEntity? + fun order_deconstruction(force: LuaForce, player: LuaPlayer = definedExternally): LuaEntity? + fun cancel_deconstruction(force: String, player: uint = definedExternally) + fun cancel_deconstruction(force: String) + fun cancel_deconstruction(force: String, player: String = definedExternally) + fun cancel_deconstruction(force: String, player: LuaPlayer = definedExternally) + fun cancel_deconstruction(force: LuaForce, player: uint = definedExternally) + fun cancel_deconstruction(force: LuaForce) + fun cancel_deconstruction(force: LuaForce, player: String = definedExternally) + fun cancel_deconstruction(force: LuaForce, player: LuaPlayer = definedExternally) + var name: String + var prototype: LuaTilePrototype + var position: PositionTable + var hidden_tile: String? + var surface: LuaSurface + var valid: Boolean + var object_name: String /* "LuaTile" */ + fun help(): String +} + +external interface `T$86` { + var minable: Boolean + var miningtime: double + var miningparticle: String? + get() = definedExternally + set(value) = definedExternally + var products: Array +} + +external interface LuaTilePrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var collision_mask: CollisionMask + var collision_mask_with_flags: CollisionMaskWithFlags + var layer: uint + var autoplace_specification: AutoplaceSpecification? + var walking_speed_modifier: float + var vehicle_friction_modifier: float + var map_color: ColorTable + var decorative_removal_probability: float + var automatic_neighbors: Boolean + var allowed_neighbors: Record + var needs_correction: Boolean + var mineable_properties: `T$86` + var next_direction: LuaTilePrototype? + var items_to_place_this: Array + var can_be_part_of_blueprint: Boolean + var emissions_per_second: double + var valid: Boolean + var object_name: String /* "LuaTilePrototype" */ + fun help(): String +} + +external interface LuaTrain { + fun get_item_count(item: String = definedExternally): uint + fun get_contents(): Record + fun remove_item(stack: String): uint + fun remove_item(stack: ItemStackDefinition): uint + fun remove_item(stack: LuaItemStack): uint + fun insert(stack: String) + fun insert(stack: ItemStackDefinition) + fun insert(stack: LuaItemStack) + fun clear_items_inside() + fun recalculate_path(force: Boolean = definedExternally): Boolean + fun get_fluid_count(fluid: String = definedExternally): double + fun get_fluid_contents(): Record + fun remove_fluid(fluid: Fluid): double + fun insert_fluid(fluid: Fluid): double + fun clear_fluids_inside() + fun go_to_station(index: uint) + fun get_rails(): Array + var manual_mode: Boolean + var speed: double + var max_forward_speed: double + var max_backward_speed: double + var weight: double + var carriages: Array + var locomotives: Record> + var cargo_wagons: Array + var fluid_wagons: Array + var schedule: TrainSchedule? + var state: train_state + var front_rail: LuaEntity? + var back_rail: LuaEntity? + var rail_direction_from_front_rail: rail_direction + var rail_direction_from_back_rail: rail_direction + var front_stock: LuaEntity? + var back_stock: LuaEntity? + var station: LuaEntity? + var has_path: Boolean + var path_end_rail: LuaEntity? + var path_end_stop: LuaEntity? + var id: uint + var passengers: Array + var riding_state: RidingState + var killed_players: Record + var kill_count: uint + var path: LuaRailPath? + var signal: LuaEntity? + var valid: Boolean + var object_name: String /* "LuaTrain" */ + fun help(): String +} + +external interface LuaTrainStopControlBehavior : LuaGenericOnOffControlBehavior { + var send_to_train: Boolean + var read_from_train: Boolean + var read_stopped_train: Boolean + var set_trains_limit: Boolean + var read_trains_count: Boolean + var enable_disable: Boolean + var stopped_train_signal: SignalID + var trains_count_signal: SignalID + var trains_limit_signal: SignalID + override var valid: Boolean + override var object_name: String /* "LuaTrainStopControlBehavior" */ + override fun help(): String +} + +external interface LuaTransportBeltControlBehavior : LuaGenericOnOffControlBehavior { + var enable_disable: Boolean + var read_contents: Boolean + var read_contents_mode: content_read_mode + override var valid: Boolean + override var object_name: String /* "LuaTransportBeltControlBehavior" */ + override fun help(): String +} + +typealias LuaTransportLine = Array + +external interface LuaTrivialSmokePrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var color: ColorTable + var start_scale: double + var end_scale: double + var movement_slow_down_factor: double + var duration: uint + var spread_duration: uint + var fade_away_duration: uint + var fade_in_duration: uint + var glow_fade_away_duration: uint + var cyclic: Boolean + var affected_by_wind: Boolean + var show_when_smoke_off: Boolean + var glow_animation: Boolean + var render_layer: dynamic /* Number | */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaTrivialSmokePrototype" */ + fun help(): String +} + +external interface LuaUnitGroup { + fun add_member(unit: LuaEntity) + fun set_command(command: AttackCommand) + fun set_command(command: GoToLocationCommand) + fun set_command(command: CompoundCommand) + fun set_command(command: GroupCommand) + fun set_command(command: AttackAreaCommand) + fun set_command(command: WanderCommand) + fun set_command(command: StopCommand) + fun set_command(command: FleeCommand) + fun set_command(command: BuildBaseCommand) + fun set_distraction_command(command: AttackCommand) + fun set_distraction_command(command: GoToLocationCommand) + fun set_distraction_command(command: CompoundCommand) + fun set_distraction_command(command: GroupCommand) + fun set_distraction_command(command: AttackAreaCommand) + fun set_distraction_command(command: WanderCommand) + fun set_distraction_command(command: StopCommand) + fun set_distraction_command(command: FleeCommand) + fun set_distraction_command(command: BuildBaseCommand) + fun set_autonomous() + fun start_moving() + fun destroy() + var members: Array + var position: PositionTable + var state: group_state + var force: LuaForce + var surface: LuaSurface + var group_number: uint + var is_script_driven: Boolean + var command: dynamic /* AttackCommand? | GoToLocationCommand? | CompoundCommand? | GroupCommand? | AttackAreaCommand? | WanderCommand? | StopCommand? | FleeCommand? | BuildBaseCommand? */ + get() = definedExternally + set(value) = definedExternally + var distraction_command: dynamic /* AttackCommand? | GoToLocationCommand? | CompoundCommand? | GroupCommand? | AttackAreaCommand? | WanderCommand? | StopCommand? | FleeCommand? | BuildBaseCommand? */ + get() = definedExternally + set(value) = definedExternally + var valid: Boolean + var object_name: String /* "LuaUnitGroup" */ + fun help(): String +} + +external interface LuaVirtualSignalPrototype { + var name: String + var order: String + var localised_name: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var localised_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var special: Boolean + var subgroup: LuaGroup + var valid: Boolean + var object_name: String /* "LuaVirtualSignalPrototype" */ + fun help(): String +} + +external interface LuaVoidEnergySourcePrototype { + var emissions: double + var render_no_network_icon: Boolean + var render_no_power_icon: Boolean + var valid: Boolean + var object_name: String /* "LuaVoidEnergySourcePrototype" */ + fun help(): String +} + +external interface LuaWallControlBehavior : LuaControlBehavior { + var circuit_condition: CircuitConditionDefinition + var open_gate: Boolean + var read_sensor: Boolean + var output_signal: SignalID + var valid: Boolean + var object_name: String /* "LuaWallControlBehavior" */ + fun help(): String +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/concepts.module_typed-factorio.kt b/modules/mod2/dukat-custom/concepts.module_typed-factorio.kt new file mode 100644 index 0000000..b30c7c9 --- /dev/null +++ b/modules/mod2/dukat-custom/concepts.module_typed-factorio.kt @@ -0,0 +1,2924 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import defines.relative_gui_type +import defines.relative_gui_position +import tsstdlib.Record +import tsstdlib.Position +import defines.difficulty_settings.recipe_difficulty +import defines.difficulty_settings.technology_difficulty +import defines.circuit_connector_id +import defines.direction +import defines.wire_type +import defines.command +import defines.distraction +import defines.compound_command +import defines.inventory +import defines.riding.acceleration +import defines.riding.direction as _defines_riding_direction +import defines.control_behavior.mining_drill.resource_read_mode +import defines.control_behavior.inserter.hand_read_mode +import defines.control_behavior.transport_belt.content_read_mode + +external interface DisplayResolution { + var width: uint + var height: uint +} + +external interface PersonalLogisticParameters { + var name: String? + get() = definedExternally + set(value) = definedExternally + var min: uint? + get() = definedExternally + set(value) = definedExternally + var max: uint? + get() = definedExternally + set(value) = definedExternally +} + +typealias RealOrientation = float + +external interface PositionTable { + var x: int + var y: int +} + +external interface ChunkPositionTable { + var x: int + var y: int +} + +external interface TilePositionTable { + var x: int + var y: int +} + +external interface GuiLocationTable { + var x: int + var y: int +} + +external interface ChunkPositionAndArea { + var x: int + var y: int + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally +} + +external interface EquipmentPoint { + var x: uint + var y: uint +} + +external interface GuiAnchor { + var gui: relative_gui_type + var position: relative_gui_position + var type: String? + get() = definedExternally + set(value) = definedExternally + var name: String? + get() = definedExternally + set(value) = definedExternally + var names: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface TabAndContent { + var tab: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var content: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally +} + +external interface OldTileAndPosition { + var old_tile: LuaTilePrototype + var position: dynamic /* TilePositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally +} + +typealias Tags = Record + +external interface SmokeSource { + var name: String + var frequency: double + var offset: double + var position: PositionTable? + get() = definedExternally + set(value) = definedExternally + var north_position: PositionTable? + get() = definedExternally + set(value) = definedExternally + var east_position: PositionTable? + get() = definedExternally + set(value) = definedExternally + var south_position: PositionTable? + get() = definedExternally + set(value) = definedExternally + var west_position: PositionTable? + get() = definedExternally + set(value) = definedExternally + var deviation: Position? + get() = definedExternally + set(value) = definedExternally + var starting_frame_speed: uint16 + var starting_frame_speed_deviation: double + var starting_frame: uint16 + var starting_frame_deviation: double + var slow_down_factor: uint8 + var height: float + var height_deviation: float + var starting_vertical_speed: float + var starting_vertical_speed_deviation: float + var vertical_speed_slowdown: float +} + +external interface BoundingBoxTable { + var left_top: Position + var right_bottom: Position + var orientation: RealOrientation? + get() = definedExternally + set(value) = definedExternally +} + +external interface ScriptArea { + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var name: String + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var id: uint +} + +external interface ScriptPosition { + var position: Position + var name: String + var color: dynamic /* ColorTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var id: uint +} + +external interface ColorTable { + var r: float? + get() = definedExternally + set(value) = definedExternally + var g: float? + get() = definedExternally + set(value) = definedExternally + var b: float? + get() = definedExternally + set(value) = definedExternally + var a: float? + get() = definedExternally + set(value) = definedExternally +} + +external interface ColorModifierTable { + var r: float? + get() = definedExternally + set(value) = definedExternally + var g: float? + get() = definedExternally + set(value) = definedExternally + var b: float? + get() = definedExternally + set(value) = definedExternally + var a: float? + get() = definedExternally + set(value) = definedExternally +} + +external interface CraftingQueueItem { + var index: uint + var recipe: String + var count: uint +} + +external interface Alert { + var tick: uint + var target: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var prototype: LuaEntityPrototype? + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally + var icon: SignalID? + get() = definedExternally + set(value) = definedExternally + var message: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ScriptRenderVertexTarget { + var target: dynamic /* Position | LuaEntity */ + get() = definedExternally + set(value) = definedExternally + var target_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally +} + +external interface PathfinderWaypoint { + var position: Position + var needs_destroy_to_reach: Boolean +} + +external interface CutsceneWaypoint { + var position: Position? + get() = definedExternally + set(value) = definedExternally + var target: dynamic /* LuaEntity? | LuaUnitGroup? */ + get() = definedExternally + set(value) = definedExternally + var transition_time: uint + var time_to_wait: uint + var zoom: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface Decorative { + var name: String + var position: Position + var amount: uint8 +} + +external interface DecorativeResult { + var position: dynamic /* TilePositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var decorative: LuaDecorativePrototype + var amount: uint +} + +external interface ChartTagSpec { + var position: Position + var icon: SignalID? + get() = definedExternally + set(value) = definedExternally + var text: String? + get() = definedExternally + set(value) = definedExternally + var last_user: dynamic /* uint? | String? | LuaPlayer? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface GameViewSettings { + var show_controller_gui: Boolean + var show_minimap: Boolean + var show_research_info: Boolean + var show_entity_info: Boolean + var show_alert_gui: Boolean + var update_entity_selection: Boolean + var show_rail_block_visualisation: Boolean + var show_side_menu: Boolean + var show_map_view_options: Boolean + var show_quickbar: Boolean + var show_shortcut_bar: Boolean +} + +external interface MapViewSettings { + @nativeGetter + operator fun get(key: String): Boolean? + @nativeSetter + operator fun set(key: String, value: Boolean?) +} + +external interface PollutionMapSettings { + var enabled: Boolean + var diffusion_ratio: double + var min_to_diffuse: double + var aeging: double + var expected_max_per_chunk: double + var min_to_show_per_chunk: double + var min_pollution_to_damage_trees: double + var pollution_with_max_forest_damage: double + var pollution_per_tree_damage: double + var pollution_restored_per_tree_damage: double + var max_pollution_to_restore_trees: double + var enemy_attack_pollution_consumption_modifier: double +} + +external interface EnemyEvolutionMapSettings { + var enabled: Boolean + var time_factor: double + var destroy_factor: double + var pollution_factor: double +} + +external interface EnemyExpansionMapSettings { + var enabled: Boolean + var max_expansion_distance: uint + var friendly_base_influence_radius: uint + var enemy_building_influence_radius: uint + var building_coefficient: double + var other_base_coefficient: double + var neighbouring_chunk_coefficient: double + var neighbouring_base_chunk_coefficient: double + var max_colliding_tiles_coefficient: double + var settler_group_min_size: uint + var settler_group_max_size: uint + var min_expansion_cooldown: uint + var max_expansion_cooldown: uint +} + +external interface UnitGroupMapSettings { + var min_group_gathering_time: uint + var max_group_gathering_time: uint + var max_wait_time_for_late_members: uint + var min_group_radius: double + var max_group_radius: double + var max_member_speedup_when_behind: double + var max_member_slowdown_when_ahead: double + var max_group_slowdown_factor: double + var max_group_member_fallback_factor: double + var member_disown_distance: double + var tick_tolerance_when_member_arrives: uint + var max_gathering_unit_groups: uint + var max_unit_group_size: uint +} + +external interface SteeringMapSetting { + var radius: double + var separation_factor: double + var separation_force: double + var force_unit_fuzzy_goto_behavior: Boolean +} + +external interface SteeringMapSettings { + var default: SteeringMapSetting + var moving: SteeringMapSetting +} + +external interface PathFinderMapSettings { + var fwd2bwd_ratio: uint + var goal_pressure_ratio: double + var max_steps_worked_per_tick: double + var max_work_done_per_tick: uint + var use_path_cache: Boolean + var short_cache_size: uint + var long_cache_size: uint + var short_cache_min_cacheable_distance: double + var short_cache_min_algo_steps_to_cache: uint + var long_cache_min_cacheable_distance: double + var cache_max_connect_to_cache_steps_multiplier: uint + var cache_accept_path_start_distance_ratio: double + var cache_accept_path_end_distance_ratio: double + var negative_cache_accept_path_start_distance_ratio: double + var negative_cache_accept_path_end_distance_ratio: double + var cache_path_start_distance_rating_multiplier: double + var cache_path_end_distance_rating_multiplier: double + var stale_enemy_with_same_destination_collision_penalty: double + var ignore_moving_enemy_collision_distance: double + var enemy_with_different_destination_collision_penalty: double + var general_entity_collision_penalty: double + var general_entity_subsequent_collision_penalty: double + var extended_collision_penalty: double + var max_clients_to_accept_any_new_request: uint + var max_clients_to_accept_short_new_request: uint + var direct_distance_to_consider_short_request: uint + var short_request_max_steps: uint + var short_request_ratio: double + var min_steps_to_check_path_find_termination: uint + var start_to_goal_cost_multiplier_to_terminate_path_find: double + var overload_levels: Array + var overload_multipliers: Array + var negative_path_cache_delay_interval: uint +} + +external interface MapSettings { + var pollution: PollutionMapSettings + var enemy_evolution: EnemyEvolutionMapSettings + var enemy_expansion: EnemyExpansionMapSettings + var unit_group: UnitGroupMapSettings + var steering: SteeringMapSettings + var path_finder: PathFinderMapSettings + var max_failed_behavior_count: uint +} + +external interface DifficultySettings { + var recipe_difficulty: recipe_difficulty + var technology_difficulty: technology_difficulty + var technology_price_multiplier: double + var research_queue_setting: String /* "after-victory" | "always" | "never" */ +} + +external interface MapExchangeStringData { + var map_settings: MapSettings + var map_gen_settings: MapGenSettings +} + +external interface BlueprintItemIcon { + var name: String + var index: uint +} + +external interface BlueprintSignalIcon { + var signal: SignalID + var index: uint +} + +external interface BlueprintConnectionData { + var entity_id: uint + var circuit_id: circuit_connector_id? + get() = definedExternally + set(value) = definedExternally +} + +external interface BlueprintConnectionPoint { + var red: Array? + get() = definedExternally + set(value) = definedExternally + var green: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface BlueprintCircuitConnection { + @nativeGetter + operator fun get(key: String): BlueprintConnectionPoint? + @nativeSetter + operator fun set(key: String, value: BlueprintConnectionPoint?) +} + +external interface BlueprintEntity { + var entity_number: uint + var name: String + var position: Position + var direction: direction? + get() = definedExternally + set(value) = definedExternally + var tags: Tags? + get() = definedExternally + set(value) = definedExternally + var items: Record? + get() = definedExternally + set(value) = definedExternally + var connections: BlueprintCircuitConnection? + get() = definedExternally + set(value) = definedExternally + var control_behavior: BlueprintControlBehavior? + get() = definedExternally + set(value) = definedExternally + var schedule: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface Tile { + var position: Position + var name: String +} + +external interface Fluid { + var name: String + var amount: double + var temperature: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface BaseIngredient { + var type: String /* "item" | "fluid" */ + var name: String + var amount: double + var catalyst_amount: dynamic /* uint? | double? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FluidIngredient : BaseIngredient { + override var type: String /* "fluid" */ + var minimum_temperature: double? + get() = definedExternally + set(value) = definedExternally + var maximum_temperature: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface OtherIngredient : BaseIngredient { + override var type: String /* "item" */ +} + +external interface BaseProduct { + var type: String /* "item" | "fluid" */ + var name: String + var amount: double? + get() = definedExternally + set(value) = definedExternally + var amount_min: dynamic /* uint? | double? */ + get() = definedExternally + set(value) = definedExternally + var amount_max: dynamic /* uint? | double? */ + get() = definedExternally + set(value) = definedExternally + var probability: double? + get() = definedExternally + set(value) = definedExternally + var catalyst_amount: dynamic /* uint? | double? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FluidProduct : BaseProduct { + override var type: String /* "fluid" */ + var temperature: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface OtherProduct : BaseProduct { + override var type: String /* "item" */ +} + +external interface Loot { + var item: String + var probability: double + var count_min: double + var count_max: double +} + +external interface BaseTechnologyModifier { + var type: String /* "inserter-stack-size-bonus" | "stack-inserter-capacity-bonus" | "laboratory-speed" | "character-logistic-trash-slots" | "maximum-following-robots-count" | "worker-robot-speed" | "worker-robot-storage" | "ghost-time-to-live" | "turret-attack" | "ammo-damage" | "give-item" | "gun-speed" | "unlock-recipe" | "character-crafting-speed" | "character-mining-speed" | "character-running-speed" | "character-build-distance" | "character-item-drop-distance" | "character-reach-distance" | "character-resource-reach-distance" | "character-item-pickup-distance" | "character-loot-pickup-distance" | "character-inventory-slots-bonus" | "deconstruction-time-to-live" | "max-failed-attempts-per-tick-per-construction-queue" | "max-successful-attempts-per-tick-per-construction-queue" | "character-health-bonus" | "mining-drill-productivity-bonus" | "train-braking-force-bonus" | "zoom-to-world-enabled" | "zoom-to-world-ghost-building-enabled" | "zoom-to-world-blueprint-enabled" | "zoom-to-world-deconstruction-planner-enabled" | "zoom-to-world-upgrade-planner-enabled" | "zoom-to-world-selection-tool-enabled" | "worker-robot-battery" | "laboratory-productivity" | "follower-robot-lifetime" | "artillery-range" | "nothing" | "character-additional-mining-categories" | "character-logistic-requests" */ +} + +external interface GunSpeedTechnologyModifier : BaseTechnologyModifier { + override var type: String /* "gun-speed" */ + var ammo_category: String + var modifier: double +} + +external interface AmmoDamageTechnologyModifier : BaseTechnologyModifier { + override var type: String /* "ammo-damage" */ + var ammo_category: String + var modifier: double +} + +external interface GiveItemTechnologyModifier : BaseTechnologyModifier { + override var type: String /* "give-item" */ + var item: String + var count: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface TurretAttackTechnologyModifier : BaseTechnologyModifier { + override var type: String /* "turret-attack" */ + var turret_id: String + var modifier: double +} + +external interface UnlockRecipeTechnologyModifier : BaseTechnologyModifier { + override var type: String /* "unlock-recipe" */ + var recipe: String +} + +external interface NothingTechnologyModifier : BaseTechnologyModifier { + override var type: String /* "nothing" */ + var effect_description: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally +} + +external interface OtherTechnologyModifier : BaseTechnologyModifier { + override var type: String /* "inserter-stack-size-bonus" | "stack-inserter-capacity-bonus" | "laboratory-speed" | "character-logistic-trash-slots" | "maximum-following-robots-count" | "worker-robot-speed" | "worker-robot-storage" | "ghost-time-to-live" | "character-crafting-speed" | "character-mining-speed" | "character-running-speed" | "character-build-distance" | "character-item-drop-distance" | "character-reach-distance" | "character-resource-reach-distance" | "character-item-pickup-distance" | "character-loot-pickup-distance" | "character-inventory-slots-bonus" | "deconstruction-time-to-live" | "max-failed-attempts-per-tick-per-construction-queue" | "max-successful-attempts-per-tick-per-construction-queue" | "character-health-bonus" | "mining-drill-productivity-bonus" | "train-braking-force-bonus" | "zoom-to-world-enabled" | "zoom-to-world-ghost-building-enabled" | "zoom-to-world-blueprint-enabled" | "zoom-to-world-deconstruction-planner-enabled" | "zoom-to-world-upgrade-planner-enabled" | "zoom-to-world-selection-tool-enabled" | "worker-robot-battery" | "laboratory-productivity" | "follower-robot-lifetime" | "artillery-range" | "character-additional-mining-categories" | "character-logistic-requests" */ + var modifier: double +} + +external interface Offer { + var price: Array + var offer: dynamic /* GunSpeedTechnologyModifier | AmmoDamageTechnologyModifier | GiveItemTechnologyModifier | TurretAttackTechnologyModifier | UnlockRecipeTechnologyModifier | NothingTechnologyModifier | OtherTechnologyModifier */ + get() = definedExternally + set(value) = definedExternally +} + +external interface AutoplaceSpecification { + var probability_expression: NoiseExpression + var richness_expression: NoiseExpression + var coverage: double + var sharpness: double + var max_probability: double + var placement_density: uint + var richness_base: double + var richness_multiplier: double + var richness_multiplier_distance_bonus: double + var starting_area_size: uint + var order: String + var default_enabled: Boolean + var peaks: Array? + get() = definedExternally + set(value) = definedExternally + var control: String? + get() = definedExternally + set(value) = definedExternally + var tile_restriction: Array? + get() = definedExternally + set(value) = definedExternally + var force: String + var random_probability_penalty: double +} + +external interface NoiseExpression { + var type: String +} + +external interface AutoplaceSpecificationPeak { + var influence: double + var max_influence: double + var min_influence: double + var richness_influence: double + var noisePersistence: double + var noise_layer: String? + get() = definedExternally + set(value) = definedExternally + var noise_octaves_difference: double + var water_optimal: double + var water_range: double + var water_max_range: double + var water_top_property_limit: double + var elevation_optimal: double + var elevation_range: double + var elevation_max_range: double + var elevation_top_property_limit: double + var temperature_optimal: double + var temperature_range: double + var temperature_max_range: double + var temperature_top_property_limit: double + var starting_area_weight_optimal: double + var starting_area_weight_range: double + var starting_area_weight_max_range: double + var starting_area_weight_top_property_limit: double + var tier_from_start_optimal: double + var tier_from_start_range: double + var tier_from_start_max_range: double + var tier_from_start_top_property_limit: double + var distance_optimal: double + var distance_range: double + var distance_max_range: double + var distance_top_property_limit: double + var aux_optimal: double + var aux_range: double + var aux_max_range: double + var aux_top_property_limit: double +} + +external interface AutoplaceSpecificationRestriction { + var first: String? + get() = definedExternally + set(value) = definedExternally + var second: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface Resistance { + var decrease: float + var percent: float +} + +external interface AutoplaceSetting { + var frequency: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var size: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var richness: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface AutoplaceSettings { + var treat_missing_as_default: Boolean + var settings: Record +} + +external interface AutoplaceControl { + var frequency: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var size: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var richness: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface CliffPlacementSettings { + var name: String + var cliff_elevation_0: float + var cliff_elevation_interval: float + var richness: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface MapGenSettings { + var terrain_segmentation: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var water: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var autoplace_controls: Record + var default_enable_all_autoplace_controls: Boolean + var autoplace_settings: Record + var cliff_settings: CliffPlacementSettings + var seed: uint + var width: uint + var height: uint + var starting_area: dynamic /* Number | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var starting_points: Array + var peaceful_mode: Boolean + var property_expression_names: Record +} + +external interface MapGenSettingsPartial { + var terrain_segmentation: dynamic /* Number? | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var water: dynamic /* Number? | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var autoplace_controls: Record? + get() = definedExternally + set(value) = definedExternally + var default_enable_all_autoplace_controls: Boolean? + get() = definedExternally + set(value) = definedExternally + var autoplace_settings: Record? + get() = definedExternally + set(value) = definedExternally + var cliff_settings: CliffPlacementSettings? + get() = definedExternally + set(value) = definedExternally + var seed: uint? + get() = definedExternally + set(value) = definedExternally + var width: uint? + get() = definedExternally + set(value) = definedExternally + var height: uint? + get() = definedExternally + set(value) = definedExternally + var starting_area: dynamic /* Number? | "none" | "very-low" | "very-small" | "very-poor" | "low" | "small" | "poor" | "normal" | "medium" | "regular" | "high" | "big" | "good" | "very-high" | "very-big" | "very-good" */ + get() = definedExternally + set(value) = definedExternally + var starting_points: Array? + get() = definedExternally + set(value) = definedExternally + var peaceful_mode: Boolean? + get() = definedExternally + set(value) = definedExternally + var property_expression_names: Record? + get() = definedExternally + set(value) = definedExternally +} + +external interface SignalID { + var type: String /* "item" | "fluid" | "virtual" */ + var name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface Signal { + var signal: SignalID + var count: int +} + +external interface UpgradeFilter { + var type: String /* "item" | "entity" */ + var name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface InfinityInventoryFilter { + var name: String + var count: uint? + get() = definedExternally + set(value) = definedExternally + var mode: String? /* "at-least" | "at-most" | "exactly" */ + get() = definedExternally + set(value) = definedExternally + var index: uint +} + +external interface InfinityPipeFilter { + var name: String + var percentage: double? + get() = definedExternally + set(value) = definedExternally + var temperature: double? + get() = definedExternally + set(value) = definedExternally + var mode: String? /* "at-least" | "at-most" | "exactly" | "add" | "remove" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FluidBoxFilter { + var name: String + var minimum_temperature: double + var maximum_temperature: double +} + +external interface FluidBoxFilterSpec { + var name: String + var minimum_temperature: double? + get() = definedExternally + set(value) = definedExternally + var maximum_temperature: double? + get() = definedExternally + set(value) = definedExternally + var force: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface HeatSetting { + var temperature: double? + get() = definedExternally + set(value) = definedExternally + var mode: String? /* "at-least" | "at-most" | "exactly" | "add" | "remove" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface HeatConnection { + var position: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var direction: direction +} + +external interface FluidBoxConnection { + var type: String /* "input" | "output" | "input-output" */ + var positions: Array + var max_underground_distance: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface ArithmeticCombinatorParameters { + var first_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var second_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var first_constant: int? + get() = definedExternally + set(value) = definedExternally + var second_constant: int? + get() = definedExternally + set(value) = definedExternally + var operation: String? /* "*" | "/" | "+" | "-" | "%" | "^" | "<<" | ">>" | "AND" | "OR" | "XOR" */ + get() = definedExternally + set(value) = definedExternally + var output_signal: SignalID? + get() = definedExternally + set(value) = definedExternally +} + +external interface ConstantCombinatorParameters { + var signal: SignalID + var count: int + var index: uint +} + +external interface DeciderCombinatorParameters { + var first_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var second_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var constant: uint? + get() = definedExternally + set(value) = definedExternally + var comparator: String? /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + get() = definedExternally + set(value) = definedExternally + var output_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var copy_count_from_input: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface InserterCircuitConditions { + var circuit: CircuitCondition? + get() = definedExternally + set(value) = definedExternally + var logistics: CircuitCondition? + get() = definedExternally + set(value) = definedExternally +} + +external interface CircuitCondition { + var comparator: String? /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + get() = definedExternally + set(value) = definedExternally + var first_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var second_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var constant: int? + get() = definedExternally + set(value) = definedExternally +} + +external interface CircuitConditionDefinition { + var condition: CircuitCondition + var fulfilled: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface CircuitConnectionDefinition { + var wire: wire_type + var target_entity: LuaEntity + var source_circuit_id: circuit_connector_id + var target_circuit_id: circuit_connector_id +} + +external interface WireConnectionDefinition { + var wire: wire_type + var target_entity: LuaEntity + var source_circuit_id: circuit_connector_id? + get() = definedExternally + set(value) = definedExternally + var target_circuit_id: circuit_connector_id? + get() = definedExternally + set(value) = definedExternally + var source_wire_id: circuit_connector_id? + get() = definedExternally + set(value) = definedExternally + var target_wire_id: circuit_connector_id? + get() = definedExternally + set(value) = definedExternally +} + +external interface InventoryFilter { + var index: uint + var name: String +} + +external interface PlaceAsTileResult { + var result: LuaTilePrototype + var condition_size: uint + var condition: CollisionMask +} + +external interface BaseCommand { + var type: command +} + +external interface AttackCommand : BaseCommand { + var target: LuaEntity + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally +} + +external interface GoToLocationCommand : BaseCommand { + var destination: Position? + get() = definedExternally + set(value) = definedExternally + var destination_entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally + var pathfind_flags: PathfinderFlags? + get() = definedExternally + set(value) = definedExternally + var radius: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface CompoundCommand : BaseCommand { + var structure_type: compound_command + var commands: Array +} + +external interface GroupCommand : BaseCommand { + var group: LuaUnitGroup + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally + var use_group_distraction: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface AttackAreaCommand : BaseCommand { + var destination: Position + var radius: double + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally +} + +external interface WanderCommand : BaseCommand { + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally + var radius: double? + get() = definedExternally + set(value) = definedExternally + var wander_in_group: Boolean? + get() = definedExternally + set(value) = definedExternally + var ticks_to_wait: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface StopCommand : BaseCommand { + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally + var ticks_to_wait: uint? + get() = definedExternally + set(value) = definedExternally +} + +external interface FleeCommand : BaseCommand { + var from: LuaEntity + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally +} + +external interface BuildBaseCommand : BaseCommand { + var destination: Position + var distraction: distraction? + get() = definedExternally + set(value) = definedExternally + var ignore_planner: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface PathfinderFlags { + var allow_destroy_friendly_entities: Boolean? + get() = definedExternally + set(value) = definedExternally + var allow_paths_through_own_entities: Boolean? + get() = definedExternally + set(value) = definedExternally + var cache: Boolean? + get() = definedExternally + set(value) = definedExternally + var prefer_straight_paths: Boolean? + get() = definedExternally + set(value) = definedExternally + var low_priority: Boolean? + get() = definedExternally + set(value) = definedExternally + var no_break: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface UnitSpawnDefinition { + var unit: String + var spawn_points: Array +} + +external interface SpawnPointDefinition { + var evolution_factor: double + var weight: double +} + +external interface ItemStackDefinition { + var name: String + var count: uint? + get() = definedExternally + set(value) = definedExternally + var health: float? + get() = definedExternally + set(value) = definedExternally + var durability: double? + get() = definedExternally + set(value) = definedExternally + var ammo: double? + get() = definedExternally + set(value) = definedExternally + var tags: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface WaitCondition { + var type: String /* "time" | "inactivity" | "full" | "empty" | "item_count" | "circuit" | "robots_inactive" | "fluid_count" | "passenger_present" | "passenger_not_present" */ + var compare_type: String /* "and" | "or" */ + var ticks: uint? + get() = definedExternally + set(value) = definedExternally + var condition: CircuitCondition? + get() = definedExternally + set(value) = definedExternally +} + +external interface TrainScheduleRecord { + var station: String? + get() = definedExternally + set(value) = definedExternally + var rail: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var wait_conditions: Array? + get() = definedExternally + set(value) = definedExternally + var temporary: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TrainSchedule { + var current: uint + var records: Array +} + +external interface BaseGuiArrowSpecification { + var type: String /* "nowhere" | "goal" | "entity_info" | "active_window" | "entity" | "position" | "crafting_queue" | "item_stack" */ +} + +external interface EntityGuiArrowSpecification : BaseGuiArrowSpecification { + override var type: String /* "entity" */ + var entity: LuaEntity +} + +external interface PositionGuiArrowSpecification : BaseGuiArrowSpecification { + override var type: String /* "position" */ + var position: Position +} + +external interface CraftingQueueGuiArrowSpecification : BaseGuiArrowSpecification { + override var type: String /* "crafting_queue" */ + var crafting_queueindex: uint +} + +external interface ItemStackGuiArrowSpecification : BaseGuiArrowSpecification { + override var type: String /* "item_stack" */ + var inventory_index: inventory + var item_stack_index: uint + var source: String /* "player" | "target" | "player-quickbar" | "player-equipment-bar" */ +} + +external interface OtherGuiArrowSpecification : BaseGuiArrowSpecification { + override var type: String /* "nowhere" | "goal" | "entity_info" | "active_window" */ +} + +external interface AmmoType { + var action: Array? + get() = definedExternally + set(value) = definedExternally + var target_type: String /* "entity" | "position" | "direction" */ + var clamp_position: Boolean? + get() = definedExternally + set(value) = definedExternally + var category: String + var energy_consumption: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface BeamTarget { + var entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally +} + +external interface RidingState { + var acceleration: acceleration + var direction: _defines_riding_direction +} + +external interface ModuleEffectValue { + var bonus: float +} + +external interface ModuleEffects { + var consumption: ModuleEffectValue? + get() = definedExternally + set(value) = definedExternally + var speed: ModuleEffectValue? + get() = definedExternally + set(value) = definedExternally + var productivity: ModuleEffectValue? + get() = definedExternally + set(value) = definedExternally + var pollution: ModuleEffectValue? + get() = definedExternally + set(value) = definedExternally +} + +external interface EntityPrototypeFlags { + @nativeGetter + operator fun get(key: String): Boolean? + @nativeSetter + operator fun set(key: String, value: Boolean?) + var hidden: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ItemPrototypeFlags { + @nativeGetter + operator fun get(key: String): Boolean? + @nativeSetter + operator fun set(key: String, value: Boolean?) + var hidden: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +typealias CollisionMask = Any + +typealias CollisionMaskWithFlags = Any + +typealias TriggerTargetMask = Any + +external interface TriggerEffectItem { + var type: String /* "damage" | "create-entity" | "create-explosion" | "create-fire" | "create-smoke" | "create-trivial-smoke" | "create-particle" | "create-sticker" | "nested-result" | "play-sound" | "push-back" | "destroy-cliffs" | "show-explosion-on-chart" | "insert-item" | "script" */ + var repeat_count: uint + var affects_target: Boolean + var show_in_tooltip: Boolean +} + +external interface TriggerDelivery { + var type: String /* "instant" | "projectile" | "flame-thrower" | "beam" | "stream" | "artillery" */ + var source_effects: Array + var target_effects: Array +} + +external interface TriggerItem { + var type: String /* "direct" | "area" | "line" | "cluster" */ + var action_delivery: Array? + get() = definedExternally + set(value) = definedExternally + var entity_flags: EntityPrototypeFlags? + get() = definedExternally + set(value) = definedExternally + var ignore_collision_condition: Boolean + var collision_mask: CollisionMask + var trigger_target_mask: TriggerTargetMask + var force: String /* "all" | "enemy" | "ally" | "friend" | "not-friend" | "same" | "not-same" */ + var repeat_count: uint +} + +external interface CircularParticleCreationSpecification { + var name: String + var direction: float + var direction_deviation: float + var speed: float + var speed_deviation: float + var starting_frame_speed: float + var starting_frame_speed_deviation: float + var height: float + var height_deviation: float + var vertical_speed: float + var vertical_speed_deviation: float + var center: PositionTable + var creation_distance: double + var creation_distance_orientation: double + var use_source_position: Boolean +} + +external interface AttackParameterFluid { + var type: String + var damage_modifier: double +} + +external interface BaseAttackParameters { + var type: String /* "projectile" | "stream" | "beam" */ + var range: float + var min_range: float + var range_mode: String /* "center-to-center" | "bounding-box-to-bounding-box" */ + var fire_penalty: float + var rotate_penalty: float + var health_penalty: float + var min_attack_distance: float + var turn_range: float + var damage_modifier: float + var ammo_consumption_modifier: float + var cooldown: float + var warmup: uint + var movement_slow_down_factor: double + var movement_slow_down_cooldown: float + var ammo_type: AmmoType? + get() = definedExternally + set(value) = definedExternally + var ammo_categories: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface ProjectileAttackParameters : BaseAttackParameters { + override var type: String /* "projectile" */ + var projectile_center: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var projectile_creation_distance: float + var projectile_orientation_offset: float + var shell_particle: CircularParticleCreationSpecification? + get() = definedExternally + set(value) = definedExternally + var projectile_creation_parameters: Array */>? + get() = definedExternally + set(value) = definedExternally +} + +external interface StreamAttackParameters : BaseAttackParameters { + override var type: String /* "stream" */ + var gun_barrel_length: float + var gun_center_shift: Record + var fluid_consumption: float + var fluids: Array? + get() = definedExternally + set(value) = definedExternally + var projectile_creation_parameters: Array */>? + get() = definedExternally + set(value) = definedExternally +} + +external interface OtherAttackParameters : BaseAttackParameters { + override var type: String /* "beam" */ +} + +external interface CapsuleAction { + var type: String /* "throw" | "equipment-remote" | "use-on-self" */ + var attack_parameters: dynamic /* ProjectileAttackParameters? | StreamAttackParameters? | OtherAttackParameters? */ + get() = definedExternally + set(value) = definedExternally + var equipment: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface SelectionModeFlags { + @nativeGetter + operator fun get(key: String): Boolean? + @nativeSetter + operator fun set(key: String, value: Boolean?) + var blueprint: Boolean? + get() = definedExternally + set(value) = definedExternally + var deconstruct: Boolean? + get() = definedExternally + set(value) = definedExternally + var items: Boolean? + get() = definedExternally + set(value) = definedExternally + var trees: Boolean? + get() = definedExternally + set(value) = definedExternally + var nothing: Boolean? + get() = definedExternally + set(value) = definedExternally + var friend: Boolean? + get() = definedExternally + set(value) = definedExternally + var enemy: Boolean? + get() = definedExternally + set(value) = definedExternally + var upgrade: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface LogisticFilter { + var index: uint + var name: String + var count: uint +} + +external interface ModSetting { + var value: dynamic /* uint | double | Boolean | String */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ProgrammableSpeakerParameters { + var playback_volume: double + var playback_globally: Boolean + var allow_polyphony: Boolean +} + +external interface ProgrammableSpeakerAlertParameters { + var show_alert: Boolean + var show_on_map: Boolean + var icon_signal_id: SignalID + var alert_message: String +} + +external interface ProgrammableSpeakerCircuitParameters { + var signal_value_is_pitch: Boolean + var instrument_id: uint + var note_id: uint +} + +external interface ProgrammableSpeakerInstrument { + var name: String + var notes: Array +} + +external interface EventData { + var name: uint /* uint & `T$93` */ + var tick: uint + var mod_name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface NthTickEventData { + var tick: uint + var nth_tick: uint +} + +external interface ModChangeData { + var old_version: String? + var new_version: String? +} + +external interface ConfigurationChangedData { + var old_version: String? + get() = definedExternally + set(value) = definedExternally + var new_version: String? + get() = definedExternally + set(value) = definedExternally + var mod_changes: Record + var mod_startup_settings_changed: Boolean + var migration_applied: Boolean +} + +external interface CustomCommandData { + var name: String + var tick: uint + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var parameter: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface SelectedPrototypeData { + var base_type: String + var derived_type: String + var name: String +} + +external interface ScriptRenderTarget { + var entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var entity_offset: dynamic /* typealias Vector = dynamic */ + get() = definedExternally + set(value) = definedExternally + var position: Position? + get() = definedExternally + set(value) = definedExternally +} + +typealias MouseButtonFlagsTable = Any + +typealias MouseButtonFlagsArray = Array + +external interface ItemStackLocation { + var inventory: inventory + var slot: uint +} + +external interface VehicleAutomaticTargetingParameters { + var auto_target_without_gunner: Boolean + var auto_target_with_gunner: Boolean +} + +external interface BaseItemPrototypeFilter { + var filter: String /* "tool" | "mergeable" | "item-with-inventory" | "selection-tool" | "item-with-label" | "has-rocket-launch-products" | "fuel" | "place-result" | "burnt-result" | "place-as-tile" | "placed-as-equipment-result" | "name" | "type" | "flag" | "subgroup" | "fuel-category" | "stack-size" | "default-request-amount" | "wire-count" | "fuel-value" | "fuel-acceleration-multiplier" | "fuel-top-speed-multiplier" | "fuel-emissions-multiplier" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface PlaceResultItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "place-result" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface BurntResultItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "burnt-result" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface PlaceAsTileItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "place-as-tile" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface PlacedAsEquipmentResultItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "placed-as-equipment-result" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface NameItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "name" */ + var name: dynamic /* String | Array */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface FlagItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "flag" */ + var flag: String +} + +external interface SubgroupItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "subgroup" */ + var subgroup: String +} + +external interface FuelCategoryItemPrototypeFilter : BaseItemPrototypeFilter { + @nativeGetter + operator fun get(key: String): String? + @nativeSetter + operator fun set(key: String, value: String) + override var filter: String /* "fuel-category" */ +} + +external interface StackSizeItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "stack-size" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface DefaultRequestAmountItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "default-request-amount" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface WireCountItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "wire-count" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface FuelValueItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "fuel-value" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface FuelAccelerationMultiplierItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "fuel-acceleration-multiplier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface FuelTopSpeedMultiplierItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "fuel-top-speed-multiplier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface FuelEmissionsMultiplierItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "fuel-emissions-multiplier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface OtherItemPrototypeFilter : BaseItemPrototypeFilter { + override var filter: String /* "tool" | "mergeable" | "item-with-inventory" | "selection-tool" | "item-with-label" | "has-rocket-launch-products" | "fuel" */ +} + +external interface BaseModSettingPrototypeFilter { + var filter: String /* "type" | "mod" | "setting-type" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeModSettingPrototypeFilter : BaseModSettingPrototypeFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface ModModSettingPrototypeFilter : BaseModSettingPrototypeFilter { + override var filter: String /* "mod" */ + var mod: String +} + +external interface SettingTypeModSettingPrototypeFilter : BaseModSettingPrototypeFilter { + override var filter: String /* "setting-type" */ + var type: String +} + +external interface BaseTechnologyPrototypeFilter { + var filter: String /* "enabled" | "hidden" | "upgrade" | "visible-when-disabled" | "has-effects" | "has-prerequisites" | "research-unit-ingredient" | "level" | "max-level" | "time" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ResearchUnitIngredientTechnologyPrototypeFilter : BaseTechnologyPrototypeFilter { + override var filter: String /* "research-unit-ingredient" */ + var ingredient: String +} + +external interface LevelTechnologyPrototypeFilter : BaseTechnologyPrototypeFilter { + override var filter: String /* "level" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface MaxLevelTechnologyPrototypeFilter : BaseTechnologyPrototypeFilter { + override var filter: String /* "max-level" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface TimeTechnologyPrototypeFilter : BaseTechnologyPrototypeFilter { + override var filter: String /* "time" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface OtherTechnologyPrototypeFilter : BaseTechnologyPrototypeFilter { + override var filter: String /* "enabled" | "hidden" | "upgrade" | "visible-when-disabled" | "has-effects" | "has-prerequisites" */ +} + +external interface BaseDecorativePrototypeFilter { + var filter: String /* "decal" | "autoplace" | "collision-mask" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface CollisionMaskDecorativePrototypeFilter : BaseDecorativePrototypeFilter { + override var filter: String /* "collision-mask" */ + var mask: dynamic /* CollisionMask | CollisionMaskWithFlags */ + get() = definedExternally + set(value) = definedExternally + var mask_mode: String /* "collides" | "layers-equals" */ +} + +external interface OtherDecorativePrototypeFilter : BaseDecorativePrototypeFilter { + override var filter: String /* "decal" | "autoplace" */ +} + +external interface BaseAchievementPrototypeFilter { + var filter: String /* "allowed-without-fight" | "type" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeAchievementPrototypeFilter : BaseAchievementPrototypeFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface OtherAchievementPrototypeFilter : BaseAchievementPrototypeFilter { + override var filter: String /* "allowed-without-fight" */ +} + +external interface BaseFluidPrototypeFilter { + var filter: String /* "hidden" | "name" | "subgroup" | "default-temperature" | "max-temperature" | "heat-capacity" | "fuel-value" | "emissions-multiplier" | "gas-temperature" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface NameFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "name" */ + var name: dynamic /* String | Array */ + get() = definedExternally + set(value) = definedExternally +} + +external interface SubgroupFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "subgroup" */ + var subgroup: String +} + +external interface DefaultTemperatureFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "default-temperature" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface MaxTemperatureFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "max-temperature" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface HeatCapacityFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "heat-capacity" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface FuelValueFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "fuel-value" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface EmissionsMultiplierFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "emissions-multiplier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface GasTemperatureFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "gas-temperature" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface OtherFluidPrototypeFilter : BaseFluidPrototypeFilter { + override var filter: String /* "hidden" */ +} + +external interface BaseEquipmentPrototypeFilter { + var filter: String /* "item-to-place" | "type" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEquipmentPrototypeFilter : BaseEquipmentPrototypeFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface OtherEquipmentPrototypeFilter : BaseEquipmentPrototypeFilter { + override var filter: String /* "item-to-place" */ +} + +external interface BaseTilePrototypeFilter { + var filter: String /* "minable" | "autoplace" | "blueprintable" | "item-to-place" | "collision-mask" | "walking-speed-modifier" | "vehicle-friction-modifier" | "decorative-removal-probability" | "emissions" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface CollisionMaskTilePrototypeFilter : BaseTilePrototypeFilter { + override var filter: String /* "collision-mask" */ + var mask: dynamic /* CollisionMask | CollisionMaskWithFlags */ + get() = definedExternally + set(value) = definedExternally + var mask_mode: String /* "collides" | "layers-equals" */ +} + +external interface WalkingSpeedModifierTilePrototypeFilter : BaseTilePrototypeFilter { + override var filter: String /* "walking-speed-modifier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface VehicleFrictionModifierTilePrototypeFilter : BaseTilePrototypeFilter { + override var filter: String /* "vehicle-friction-modifier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface DecorativeRemovalProbabilityTilePrototypeFilter : BaseTilePrototypeFilter { + override var filter: String /* "decorative-removal-probability" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: float +} + +external interface EmissionsTilePrototypeFilter : BaseTilePrototypeFilter { + override var filter: String /* "emissions" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface OtherTilePrototypeFilter : BaseTilePrototypeFilter { + override var filter: String /* "minable" | "autoplace" | "blueprintable" | "item-to-place" */ +} + +external interface BaseRecipePrototypeFilter { + var filter: String /* "enabled" | "hidden" | "hidden-from-flow-stats" | "hidden-from-player-crafting" | "allow-as-intermediate" | "allow-intermediates" | "allow-decomposition" | "always-show-made-in" | "always-show-products" | "show-amount-in-title" | "has-ingredients" | "has-products" | "has-ingredient-item" | "has-ingredient-fluid" | "has-product-item" | "has-product-fluid" | "subgroup" | "category" | "energy" | "emissions-multiplier" | "request-paste-multiplier" | "overload-multiplier" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface HasIngredientItemRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "has-ingredient-item" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface HasIngredientFluidRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "has-ingredient-fluid" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface HasProductItemRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "has-product-item" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface HasProductFluidRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "has-product-fluid" */ + var elem_filters: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface SubgroupRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "subgroup" */ + var subgroup: String +} + +external interface CategoryRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "category" */ + var category: String +} + +external interface EnergyRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "energy" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface EmissionsMultiplierRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "emissions-multiplier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface RequestPasteMultiplierRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "request-paste-multiplier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface OverloadMultiplierRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "overload-multiplier" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint +} + +external interface OtherRecipePrototypeFilter : BaseRecipePrototypeFilter { + override var filter: String /* "enabled" | "hidden" | "hidden-from-flow-stats" | "hidden-from-player-crafting" | "allow-as-intermediate" | "allow-intermediates" | "allow-decomposition" | "always-show-made-in" | "always-show-products" | "show-amount-in-title" | "has-ingredients" | "has-products" */ +} + +external interface BaseEntityPrototypeFilter { + var filter: String /* "flying-robot" | "robot-with-logistics-interface" | "rail" | "ghost" | "explosion" | "vehicle" | "crafting-machine" | "rolling-stock" | "turret" | "transport-belt-connectable" | "wall-connectable" | "buildable" | "placable-in-editor" | "clonable" | "selectable" | "hidden" | "entity-with-health" | "building" | "fast-replaceable" | "uses-direction" | "minable" | "circuit-connectable" | "autoplace" | "blueprintable" | "item-to-place" | "name" | "type" | "collision-mask" | "flag" | "build-base-evolution-requirement" | "selection-priority" | "emissions" | "crafting-category" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface NameEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "name" */ + var name: dynamic /* String | Array */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface CollisionMaskEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "collision-mask" */ + var mask: dynamic /* CollisionMask | CollisionMaskWithFlags */ + get() = definedExternally + set(value) = definedExternally + var mask_mode: String /* "collides" | "layers-equals" */ +} + +external interface FlagEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "flag" */ + var flag: String +} + +external interface BuildBaseEvolutionRequirementEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "build-base-evolution-requirement" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface SelectionPriorityEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "selection-priority" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: uint8 +} + +external interface EmissionsEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "emissions" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: double +} + +external interface CraftingCategoryEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "crafting-category" */ + var crafting_category: String +} + +external interface OtherEntityPrototypeFilter : BaseEntityPrototypeFilter { + override var filter: String /* "flying-robot" | "robot-with-logistics-interface" | "rail" | "ghost" | "explosion" | "vehicle" | "crafting-machine" | "rolling-stock" | "turret" | "transport-belt-connectable" | "wall-connectable" | "buildable" | "placable-in-editor" | "clonable" | "selectable" | "hidden" | "entity-with-health" | "building" | "fast-replaceable" | "uses-direction" | "minable" | "circuit-connectable" | "autoplace" | "blueprintable" | "item-to-place" */ +} + +external interface BaseScriptRaisedReviveEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeScriptRaisedReviveEventFilter : BaseScriptRaisedReviveEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameScriptRaisedReviveEventFilter : BaseScriptRaisedReviveEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeScriptRaisedReviveEventFilter : BaseScriptRaisedReviveEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameScriptRaisedReviveEventFilter : BaseScriptRaisedReviveEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherScriptRaisedReviveEventFilter : BaseScriptRaisedReviveEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseEntityDiedEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEntityDiedEventFilter : BaseEntityDiedEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameEntityDiedEventFilter : BaseEntityDiedEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeEntityDiedEventFilter : BaseEntityDiedEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameEntityDiedEventFilter : BaseEntityDiedEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherEntityDiedEventFilter : BaseEntityDiedEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseEntityMarkedForDeconstructionEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEntityMarkedForDeconstructionEventFilter : BaseEntityMarkedForDeconstructionEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameEntityMarkedForDeconstructionEventFilter : BaseEntityMarkedForDeconstructionEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeEntityMarkedForDeconstructionEventFilter : BaseEntityMarkedForDeconstructionEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameEntityMarkedForDeconstructionEventFilter : BaseEntityMarkedForDeconstructionEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherEntityMarkedForDeconstructionEventFilter : BaseEntityMarkedForDeconstructionEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BasePreGhostDeconstructedEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePreGhostDeconstructedEventFilter : BasePreGhostDeconstructedEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NamePreGhostDeconstructedEventFilter : BasePreGhostDeconstructedEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypePreGhostDeconstructedEventFilter : BasePreGhostDeconstructedEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNamePreGhostDeconstructedEventFilter : BasePreGhostDeconstructedEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherPreGhostDeconstructedEventFilter : BasePreGhostDeconstructedEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseScriptRaisedDestroyEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeScriptRaisedDestroyEventFilter : BaseScriptRaisedDestroyEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameScriptRaisedDestroyEventFilter : BaseScriptRaisedDestroyEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeScriptRaisedDestroyEventFilter : BaseScriptRaisedDestroyEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameScriptRaisedDestroyEventFilter : BaseScriptRaisedDestroyEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherScriptRaisedDestroyEventFilter : BaseScriptRaisedDestroyEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseUpgradeCancelledEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeUpgradeCancelledEventFilter : BaseUpgradeCancelledEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameUpgradeCancelledEventFilter : BaseUpgradeCancelledEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeUpgradeCancelledEventFilter : BaseUpgradeCancelledEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameUpgradeCancelledEventFilter : BaseUpgradeCancelledEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherUpgradeCancelledEventFilter : BaseUpgradeCancelledEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BasePlayerRepairedEntityEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePlayerRepairedEntityEventFilter : BasePlayerRepairedEntityEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NamePlayerRepairedEntityEventFilter : BasePlayerRepairedEntityEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypePlayerRepairedEntityEventFilter : BasePlayerRepairedEntityEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNamePlayerRepairedEntityEventFilter : BasePlayerRepairedEntityEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherPlayerRepairedEntityEventFilter : BasePlayerRepairedEntityEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseEntityMarkedForUpgradeEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEntityMarkedForUpgradeEventFilter : BaseEntityMarkedForUpgradeEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameEntityMarkedForUpgradeEventFilter : BaseEntityMarkedForUpgradeEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeEntityMarkedForUpgradeEventFilter : BaseEntityMarkedForUpgradeEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameEntityMarkedForUpgradeEventFilter : BaseEntityMarkedForUpgradeEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherEntityMarkedForUpgradeEventFilter : BaseEntityMarkedForUpgradeEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BasePostEntityDiedEventFilter { + var filter: String /* "type" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePostEntityDiedEventFilter : BasePostEntityDiedEventFilter { + override var filter: String /* "type" */ + var type: String +} + +typealias LuaPostEntityDiedEventFilter = TypePostEntityDiedEventFilter + +external interface BasePreRobotMinedEntityEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePreRobotMinedEntityEventFilter : BasePreRobotMinedEntityEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NamePreRobotMinedEntityEventFilter : BasePreRobotMinedEntityEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypePreRobotMinedEntityEventFilter : BasePreRobotMinedEntityEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNamePreRobotMinedEntityEventFilter : BasePreRobotMinedEntityEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherPreRobotMinedEntityEventFilter : BasePreRobotMinedEntityEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseEntityClonedEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEntityClonedEventFilter : BaseEntityClonedEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameEntityClonedEventFilter : BaseEntityClonedEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeEntityClonedEventFilter : BaseEntityClonedEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameEntityClonedEventFilter : BaseEntityClonedEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherEntityClonedEventFilter : BaseEntityClonedEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseScriptRaisedBuiltEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeScriptRaisedBuiltEventFilter : BaseScriptRaisedBuiltEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameScriptRaisedBuiltEventFilter : BaseScriptRaisedBuiltEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeScriptRaisedBuiltEventFilter : BaseScriptRaisedBuiltEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameScriptRaisedBuiltEventFilter : BaseScriptRaisedBuiltEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherScriptRaisedBuiltEventFilter : BaseScriptRaisedBuiltEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseRobotMinedEntityEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeRobotMinedEntityEventFilter : BaseRobotMinedEntityEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameRobotMinedEntityEventFilter : BaseRobotMinedEntityEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeRobotMinedEntityEventFilter : BaseRobotMinedEntityEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameRobotMinedEntityEventFilter : BaseRobotMinedEntityEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherRobotMinedEntityEventFilter : BaseRobotMinedEntityEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BasePrePlayerMinedEntityEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePrePlayerMinedEntityEventFilter : BasePrePlayerMinedEntityEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NamePrePlayerMinedEntityEventFilter : BasePrePlayerMinedEntityEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypePrePlayerMinedEntityEventFilter : BasePrePlayerMinedEntityEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNamePrePlayerMinedEntityEventFilter : BasePrePlayerMinedEntityEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherPrePlayerMinedEntityEventFilter : BasePrePlayerMinedEntityEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseRobotBuiltEntityEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" | "force" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeRobotBuiltEntityEventFilter : BaseRobotBuiltEntityEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameRobotBuiltEntityEventFilter : BaseRobotBuiltEntityEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeRobotBuiltEntityEventFilter : BaseRobotBuiltEntityEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameRobotBuiltEntityEventFilter : BaseRobotBuiltEntityEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface ForceRobotBuiltEntityEventFilter : BaseRobotBuiltEntityEventFilter { + override var filter: String /* "force" */ + var force: String +} + +external interface OtherRobotBuiltEntityEventFilter : BaseRobotBuiltEntityEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseEntityDeconstructionCancelledEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEntityDeconstructionCancelledEventFilter : BaseEntityDeconstructionCancelledEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameEntityDeconstructionCancelledEventFilter : BaseEntityDeconstructionCancelledEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeEntityDeconstructionCancelledEventFilter : BaseEntityDeconstructionCancelledEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameEntityDeconstructionCancelledEventFilter : BaseEntityDeconstructionCancelledEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherEntityDeconstructionCancelledEventFilter : BaseEntityDeconstructionCancelledEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BasePlayerBuiltEntityEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" | "force" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePlayerBuiltEntityEventFilter : BasePlayerBuiltEntityEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NamePlayerBuiltEntityEventFilter : BasePlayerBuiltEntityEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypePlayerBuiltEntityEventFilter : BasePlayerBuiltEntityEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNamePlayerBuiltEntityEventFilter : BasePlayerBuiltEntityEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface ForcePlayerBuiltEntityEventFilter : BasePlayerBuiltEntityEventFilter { + override var filter: String /* "force" */ + var force: String +} + +external interface OtherPlayerBuiltEntityEventFilter : BasePlayerBuiltEntityEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BasePlayerMinedEntityEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePlayerMinedEntityEventFilter : BasePlayerMinedEntityEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NamePlayerMinedEntityEventFilter : BasePlayerMinedEntityEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypePlayerMinedEntityEventFilter : BasePlayerMinedEntityEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNamePlayerMinedEntityEventFilter : BasePlayerMinedEntityEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherPlayerMinedEntityEventFilter : BasePlayerMinedEntityEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseEntityDamagedEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" | "original-damage-amount" | "final-damage-amount" | "damage-type" | "final-health" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OriginalDamageAmountEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "original-damage-amount" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: float +} + +external interface FinalDamageAmountEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "final-damage-amount" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: float +} + +external interface DamageTypeEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "damage-type" */ + var type: String +} + +external interface FinalHealthEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "final-health" */ + var comparison: String /* "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!=" */ + var value: float +} + +external interface OtherEntityDamagedEventFilter : BaseEntityDamagedEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface BaseSectorScannedEventFilter { + var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" | "type" | "name" | "ghost_type" | "ghost_name" */ + var mode: String? /* "or" | "and" */ + get() = definedExternally + set(value) = definedExternally + var invert: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeSectorScannedEventFilter : BaseSectorScannedEventFilter { + override var filter: String /* "type" */ + var type: String +} + +external interface NameSectorScannedEventFilter : BaseSectorScannedEventFilter { + override var filter: String /* "name" */ + var name: String +} + +external interface GhostTypeSectorScannedEventFilter : BaseSectorScannedEventFilter { + override var filter: String /* "ghost_type" */ + var type: String +} + +external interface GhostNameSectorScannedEventFilter : BaseSectorScannedEventFilter { + override var filter: String /* "ghost_name" */ + var name: String +} + +external interface OtherSectorScannedEventFilter : BaseSectorScannedEventFilter { + override var filter: String /* "ghost" | "rail" | "rail-signal" | "rolling-stock" | "robot-with-logistics-interface" | "vehicle" | "turret" | "crafting-machine" | "wall-connectable" | "transport-belt-connectable" | "circuit-network-connectable" */ +} + +external interface `T$87` { + var enabled: Boolean? + get() = definedExternally + set(value) = definedExternally + var diffusion_ratio: double? + get() = definedExternally + set(value) = definedExternally + var ageing: double? + get() = definedExternally + set(value) = definedExternally + var enemy_attack_pollution_consumption_modifier: double? + get() = definedExternally + set(value) = definedExternally + var min_pollution_to_damage_trees: double? + get() = definedExternally + set(value) = definedExternally + var pollution_restored_per_tree_damage: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$88` { + var enabled: Boolean? + get() = definedExternally + set(value) = definedExternally + var time_factor: double? + get() = definedExternally + set(value) = definedExternally + var destroy_factor: double? + get() = definedExternally + set(value) = definedExternally + var pollution_factor: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$89` { + var enabled: Boolean? + get() = definedExternally + set(value) = definedExternally + var max_expansion_distance: double? + get() = definedExternally + set(value) = definedExternally + var settler_group_min_size: double? + get() = definedExternally + set(value) = definedExternally + var settler_group_max_size: double? + get() = definedExternally + set(value) = definedExternally + var min_expansion_cooldown: double? + get() = definedExternally + set(value) = definedExternally + var max_expansion_cooldown: double? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$90` { + var recipe_difficulty: recipe_difficulty? + get() = definedExternally + set(value) = definedExternally + var technology_difficulty: technology_difficulty? + get() = definedExternally + set(value) = definedExternally + var technology_price_multiplier: double? + get() = definedExternally + set(value) = definedExternally + var research_queue_setting: String? /* "after-victory" | "always" | "never" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$91` { + var pollution: `T$87`? + get() = definedExternally + set(value) = definedExternally + var enemy_evolution: `T$88`? + get() = definedExternally + set(value) = definedExternally + var enemy_expansion: `T$89`? + get() = definedExternally + set(value) = definedExternally + var difficulty_settings: `T$90`? + get() = definedExternally + set(value) = definedExternally +} + +external interface MapGenPreset { + var order: String + var default: Boolean? + get() = definedExternally + set(value) = definedExternally + var basic_settings: MapGenSettingsPartial + var advanced_settings: `T$91` +} + +external interface BlueprintControlBehavior { + var condition: CircuitCondition? + get() = definedExternally + set(value) = definedExternally + var circuit_condition: CircuitCondition? + get() = definedExternally + set(value) = definedExternally + var filters: Array? + get() = definedExternally + set(value) = definedExternally + var is_on: Boolean? + get() = definedExternally + set(value) = definedExternally + var arithmetic_conditions: ArithmeticCombinatorParameters? + get() = definedExternally + set(value) = definedExternally + var decider_conditions: DeciderCombinatorParameters? + get() = definedExternally + set(value) = definedExternally + var circuit_enable_disable: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_read_resources: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_resource_read_mode: resource_read_mode? + get() = definedExternally + set(value) = definedExternally + var read_stopped_train: Boolean? + get() = definedExternally + set(value) = definedExternally + var train_stopped_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var read_from_train: Boolean? + get() = definedExternally + set(value) = definedExternally + var send_to_train: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_mode_of_operation: Number? + get() = definedExternally + set(value) = definedExternally + var circuit_read_hand_contents: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_hand_read_mode: hand_read_mode? + get() = definedExternally + set(value) = definedExternally + var circuit_set_stack_size: Boolean? + get() = definedExternally + set(value) = definedExternally + var stack_control_input_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var use_colors: Boolean? + get() = definedExternally + set(value) = definedExternally + var read_robot_stats: Boolean? + get() = definedExternally + set(value) = definedExternally + var read_logistics: Boolean? + get() = definedExternally + set(value) = definedExternally + var available_logistic_output_signal: Boolean? + get() = definedExternally + set(value) = definedExternally + var total_logistic_output_signal: Boolean? + get() = definedExternally + set(value) = definedExternally + var available_construction_output_signal: Boolean? + get() = definedExternally + set(value) = definedExternally + var total_construction_output_signal: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_contents_read_mode: content_read_mode? + get() = definedExternally + set(value) = definedExternally + var output_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var circuit_close_signal: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_read_signal: Boolean? + get() = definedExternally + set(value) = definedExternally + var red_output_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var orange_output_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var green_output_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var blue_output_signal: SignalID? + get() = definedExternally + set(value) = definedExternally + var circuit_open_gate: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_read_sensor: Boolean? + get() = definedExternally + set(value) = definedExternally + var circuit_parameters: ProgrammableSpeakerCircuitParameters? + get() = definedExternally + set(value) = definedExternally +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/coroutine.coroutine.module_lua-types.kt b/modules/mod2/dukat-custom/coroutine.coroutine.module_lua-types.kt new file mode 100644 index 0000000..2228c85 --- /dev/null +++ b/modules/mod2/dukat-custom/coroutine.coroutine.module_lua-types.kt @@ -0,0 +1,30 @@ +@file:JsQualifier("coroutine") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package coroutine + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import LuaThread + +external fun create(f: (args: Any) -> Any): LuaThread + +external fun resume(co: LuaThread, vararg param_val: Any): dynamic /* JsTuple | JsTuple */ + +external fun status(co: LuaThread): String /* "running" | "suspended" | "normal" | "dead" */ + +external fun wrap(f: (args: Any) -> Any): (args: Any) -> Array + +external fun yield(vararg args: Any): Array /* Array & LuaExtension */ + +external fun running(): dynamic /* JsTuple */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/debug.debug.module_lua-types.kt b/modules/mod2/dukat-custom/debug.debug.module_lua-types.kt new file mode 100644 index 0000000..7068d82 --- /dev/null +++ b/modules/mod2/dukat-custom/debug.debug.module_lua-types.kt @@ -0,0 +1,162 @@ +@file:JsQualifier("debug") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package debug + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import LuaThread +import LuaMetatable__1 +import tsstdlib.Record +import LuaUserdata +import LuaMetatable + +external fun debug() + +external fun gethook(thread: LuaThread = definedExternally): dynamic /* JsTuple | JsTuple, Number, Any> */ + +external interface FunctionInfo> { + var nparams: Number + var isvararg: Boolean + var istailcall: Boolean + var func: T + var name: String? + get() = definedExternally + set(value) = definedExternally + var namewhat: String /* "global" | "local" | "method" | "field" | "" */ + var source: String + var short_src: String + var linedefined: Number + var lastlinedefined: Number + var what: String /* "Lua" | "C" | "main" */ + var currentline: Number + var nups: Number +} + +external interface FunctionInfoPartial> { + var nparams: Number? + get() = definedExternally + set(value) = definedExternally + var isvararg: Boolean? + get() = definedExternally + set(value) = definedExternally + var istailcall: Boolean? + get() = definedExternally + set(value) = definedExternally + var func: T? + get() = definedExternally + set(value) = definedExternally + var name: String? + get() = definedExternally + set(value) = definedExternally + var namewhat: String? /* "global" | "local" | "method" | "field" | "" */ + get() = definedExternally + set(value) = definedExternally + var source: String? + get() = definedExternally + set(value) = definedExternally + var short_src: String? + get() = definedExternally + set(value) = definedExternally + var linedefined: Number? + get() = definedExternally + set(value) = definedExternally + var lastlinedefined: Number? + get() = definedExternally + set(value) = definedExternally + var what: String? /* "Lua" | "C" | "main" */ + get() = definedExternally + set(value) = definedExternally + var currentline: Number? + get() = definedExternally + set(value) = definedExternally + var nups: Number? + get() = definedExternally + set(value) = definedExternally +} + +external interface FunctionInfo__0 : FunctionInfo> + +external interface FunctionInfo__0Partial : FunctionInfoPartial> + +external fun > getinfo(f: T): FunctionInfo + +external fun > getinfo(f: T, what: String): FunctionInfoPartial + +external fun > getinfo(thread: LuaThread, f: T): FunctionInfo + +external fun > getinfo(thread: LuaThread, f: T, what: String): FunctionInfoPartial + +external fun getinfo(f: Number): FunctionInfo__0? + +external fun getinfo(f: Number, what: String): FunctionInfo__0Partial? + +external fun getinfo(thread: LuaThread, f: Number): FunctionInfo__0? + +external fun getinfo(thread: LuaThread, f: Number, what: String): FunctionInfo__0Partial? + +external fun getmetatable(value: T): LuaMetatable__1? + +external fun getregistry(): Record + +external fun getupvalue(f: Function<*>, up: Number): dynamic /* JsTuple | JsTuple<> */ + +external fun getuservalue(u: LuaUserdata): Any + +external fun sethook() + +external fun sethook(hook: (event: String /* "call" | "return" | "line" | "count" */, line: Number) -> Any, mask: String, count: Number = definedExternally) + +external fun sethook(hook: (event: String /* "call" | "return" | "line" | "count" */, line: Number) -> Any, mask: String) + +external fun sethook(thread: LuaThread, hook: (event: String /* "call" | "return" | "line" | "count" */, line: Number) -> Any, mask: String, count: Number = definedExternally) + +external fun sethook(thread: LuaThread, hook: (event: String /* "call" | "return" | "line" | "count" */, line: Number) -> Any, mask: String) + +external fun setlocal(level: Number, local: Number, value: Any): String? + +external fun setlocal(thread: LuaThread, level: Number, local: Number, value: Any): String? + +external fun setmetatable(value: T, table: LuaMetatable? = definedExternally): Any + +external fun setupvalue(f: Function<*>, up: Number, value: Any): String? + +external fun setuservalue(udata: LuaUserdata, value: Any): LuaUserdata + +external fun traceback(message: String? = definedExternally, level: Number? = definedExternally): String + +external fun traceback(): String + +external fun traceback(message: String? = definedExternally): String + +external fun traceback(thread: LuaThread = definedExternally, message: String? = definedExternally, level: Number? = definedExternally): String + +external fun traceback(thread: LuaThread = definedExternally): String + +external fun traceback(thread: LuaThread = definedExternally, message: String? = definedExternally): String + +external fun traceback(message: T): T + +external fun traceback(thread: LuaThread, message: T): T + +external fun getlocal(f: Function<*>, local: Number): dynamic /* JsTuple */ + +external fun getlocal(f: Number, local: Number): dynamic /* JsTuple */ + +external fun getlocal(thread: LuaThread, f: Function<*>, local: Number): dynamic /* JsTuple */ + +external fun getlocal(thread: LuaThread, f: Number, local: Number): dynamic /* JsTuple */ + +external fun upvalueid(f: Function<*>, n: Number): LuaUserdata + +external fun upvaluejoin(f1: Function<*>, n1: Number, f2: Function<*>, n2: Number) \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.control_behavior.inserter.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.control_behavior.inserter.module_typed-factorio.kt new file mode 100644 index 0000000..9a91be8 --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.control_behavior.inserter.module_typed-factorio.kt @@ -0,0 +1,30 @@ +@file:JsQualifier("defines.control_behavior.inserter") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.control_behavior.inserter + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class circuit_mode_of_operation { + none, + enable_disable, + set_filters, + read_hand_contents, + set_stack_size +} + +external enum class hand_read_mode { + hold, + pulse +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.control_behavior.lamp.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.control_behavior.lamp.module_typed-factorio.kt new file mode 100644 index 0000000..4688694 --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.control_behavior.lamp.module_typed-factorio.kt @@ -0,0 +1,21 @@ +@file:JsQualifier("defines.control_behavior.lamp") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.control_behavior.lamp + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class circuit_mode_of_operation { + use_colors +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.control_behavior.logistic_container.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.control_behavior.logistic_container.module_typed-factorio.kt new file mode 100644 index 0000000..e9a2d7a --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.control_behavior.logistic_container.module_typed-factorio.kt @@ -0,0 +1,22 @@ +@file:JsQualifier("defines.control_behavior.logistic_container") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.control_behavior.logistic_container + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class circuit_mode_of_operation { + send_contents, + set_requests +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.control_behavior.mining_drill.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.control_behavior.mining_drill.module_typed-factorio.kt new file mode 100644 index 0000000..86c2231 --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.control_behavior.mining_drill.module_typed-factorio.kt @@ -0,0 +1,22 @@ +@file:JsQualifier("defines.control_behavior.mining_drill") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.control_behavior.mining_drill + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class resource_read_mode { + this_miner, + entire_patch +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.control_behavior.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.control_behavior.module_typed-factorio.kt new file mode 100644 index 0000000..4c0ec5b --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.control_behavior.module_typed-factorio.kt @@ -0,0 +1,38 @@ +@file:JsQualifier("defines.control_behavior") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.control_behavior + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class type { + container, + generic_on_off, + inserter, + lamp, + logistic_container, + roboport, + storage_tank, + train_stop, + decider_combinator, + arithmetic_combinator, + constant_combinator, + transport_belt, + accumulator, + rail_signal, + rail_chain_signal, + wall, + mining_drill, + programmable_speaker +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.control_behavior.transport_belt.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.control_behavior.transport_belt.module_typed-factorio.kt new file mode 100644 index 0000000..c78e4e7 --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.control_behavior.transport_belt.module_typed-factorio.kt @@ -0,0 +1,22 @@ +@file:JsQualifier("defines.control_behavior.transport_belt") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.control_behavior.transport_belt + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class content_read_mode { + pulse, + hold +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.deconstruction_item.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.deconstruction_item.module_typed-factorio.kt new file mode 100644 index 0000000..26ee0cc --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.deconstruction_item.module_typed-factorio.kt @@ -0,0 +1,34 @@ +@file:JsQualifier("defines.deconstruction_item") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.deconstruction_item + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class entity_filter_mode { + whitelist, + blacklist +} + +external enum class tile_filter_mode { + whitelist, + blacklist +} + +external enum class tile_selection_mode { + normal, + always, + never, + only +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.difficulty_settings.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.difficulty_settings.module_typed-factorio.kt new file mode 100644 index 0000000..bc978a6 --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.difficulty_settings.module_typed-factorio.kt @@ -0,0 +1,27 @@ +@file:JsQualifier("defines.difficulty_settings") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.difficulty_settings + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class recipe_difficulty { + normal, + expensive +} + +external enum class technology_difficulty { + normal, + expensive +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.events.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.events.module_typed-factorio.kt new file mode 100644 index 0000000..948e6bc --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.events.module_typed-factorio.kt @@ -0,0 +1,364 @@ +@file:JsQualifier("defines.events") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.events + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import uint + +external var on_tick: uint /* uint & `T$93` */ + +external var on_gui_click: uint /* uint & `T$93` */ + +external var on_gui_confirmed: uint /* uint & `T$93` */ + +external var on_gui_text_changed: uint /* uint & `T$93` */ + +external var on_gui_checked_state_changed: uint /* uint & `T$93` */ + +external var on_entity_died: uint /* uint & `T$93` */ + +external var on_post_entity_died: uint /* uint & `T$93` */ + +external var on_entity_damaged: uint /* uint & `T$93` */ + +external var on_picked_up_item: uint /* uint & `T$93` */ + +external var on_built_entity: uint /* uint & `T$93` */ + +external var on_sector_scanned: uint /* uint & `T$93` */ + +external var on_player_mined_item: uint /* uint & `T$93` */ + +external var on_pre_build: uint /* uint & `T$93` */ + +external var on_rocket_launched: uint /* uint & `T$93` */ + +external var on_pre_player_mined_item: uint /* uint & `T$93` */ + +external var on_chunk_generated: uint /* uint & `T$93` */ + +external var on_player_crafted_item: uint /* uint & `T$93` */ + +external var on_robot_built_entity: uint /* uint & `T$93` */ + +external var on_robot_pre_mined: uint /* uint & `T$93` */ + +external var on_robot_mined: uint /* uint & `T$93` */ + +external var on_research_started: uint /* uint & `T$93` */ + +external var on_research_finished: uint /* uint & `T$93` */ + +external var on_research_reversed: uint /* uint & `T$93` */ + +external var on_player_rotated_entity: uint /* uint & `T$93` */ + +external var on_marked_for_deconstruction: uint /* uint & `T$93` */ + +external var on_cancelled_deconstruction: uint /* uint & `T$93` */ + +external var on_trigger_created_entity: uint /* uint & `T$93` */ + +external var on_trigger_fired_artillery: uint /* uint & `T$93` */ + +external var on_train_changed_state: uint /* uint & `T$93` */ + +external var on_player_created: uint /* uint & `T$93` */ + +external var on_resource_depleted: uint /* uint & `T$93` */ + +external var on_player_driving_changed_state: uint /* uint & `T$93` */ + +external var on_force_created: uint /* uint & `T$93` */ + +external var on_forces_merging: uint /* uint & `T$93` */ + +external var on_player_cursor_stack_changed: uint /* uint & `T$93` */ + +external var on_pre_entity_settings_pasted: uint /* uint & `T$93` */ + +external var on_entity_settings_pasted: uint /* uint & `T$93` */ + +external var on_player_main_inventory_changed: uint /* uint & `T$93` */ + +external var on_player_armor_inventory_changed: uint /* uint & `T$93` */ + +external var on_player_ammo_inventory_changed: uint /* uint & `T$93` */ + +external var on_player_gun_inventory_changed: uint /* uint & `T$93` */ + +external var on_player_placed_equipment: uint /* uint & `T$93` */ + +external var on_player_removed_equipment: uint /* uint & `T$93` */ + +external var on_pre_player_died: uint /* uint & `T$93` */ + +external var on_player_died: uint /* uint & `T$93` */ + +external var on_player_respawned: uint /* uint & `T$93` */ + +external var on_player_joined_game: uint /* uint & `T$93` */ + +external var on_player_left_game: uint /* uint & `T$93` */ + +external var on_player_built_tile: uint /* uint & `T$93` */ + +external var on_player_mined_tile: uint /* uint & `T$93` */ + +external var on_robot_built_tile: uint /* uint & `T$93` */ + +external var on_robot_mined_tile: uint /* uint & `T$93` */ + +external var on_player_selected_area: uint /* uint & `T$93` */ + +external var on_player_alt_selected_area: uint /* uint & `T$93` */ + +external var on_player_changed_surface: uint /* uint & `T$93` */ + +external var on_selected_entity_changed: uint /* uint & `T$93` */ + +external var on_market_item_purchased: uint /* uint & `T$93` */ + +external var on_player_dropped_item: uint /* uint & `T$93` */ + +external var on_biter_base_built: uint /* uint & `T$93` */ + +external var on_player_changed_force: uint /* uint & `T$93` */ + +external var on_entity_renamed: uint /* uint & `T$93` */ + +external var on_gui_selection_state_changed: uint /* uint & `T$93` */ + +external var on_runtime_mod_setting_changed: uint /* uint & `T$93` */ + +external var on_difficulty_settings_changed: uint /* uint & `T$93` */ + +external var on_surface_created: uint /* uint & `T$93` */ + +external var on_surface_deleted: uint /* uint & `T$93` */ + +external var on_pre_surface_deleted: uint /* uint & `T$93` */ + +external var on_player_mined_entity: uint /* uint & `T$93` */ + +external var on_robot_mined_entity: uint /* uint & `T$93` */ + +external var on_train_created: uint /* uint & `T$93` */ + +external var on_gui_elem_changed: uint /* uint & `T$93` */ + +external var on_player_setup_blueprint: uint /* uint & `T$93` */ + +external var on_player_deconstructed_area: uint /* uint & `T$93` */ + +external var on_player_configured_blueprint: uint /* uint & `T$93` */ + +external var on_console_chat: uint /* uint & `T$93` */ + +external var on_console_command: uint /* uint & `T$93` */ + +external var on_player_removed: uint /* uint & `T$93` */ + +external var on_pre_player_removed: uint /* uint & `T$93` */ + +external var on_player_used_capsule: uint /* uint & `T$93` */ + +external var script_raised_built: uint /* uint & `T$93` */ + +external var script_raised_destroy: uint /* uint & `T$93` */ + +external var script_raised_revive: uint /* uint & `T$93` */ + +external var script_raised_set_tiles: uint /* uint & `T$93` */ + +external var on_player_promoted: uint /* uint & `T$93` */ + +external var on_player_demoted: uint /* uint & `T$93` */ + +external var on_combat_robot_expired: uint /* uint & `T$93` */ + +external var on_worker_robot_expired: uint /* uint & `T$93` */ + +external var on_player_changed_position: uint /* uint & `T$93` */ + +external var on_mod_item_opened: uint /* uint & `T$93` */ + +external var on_gui_opened: uint /* uint & `T$93` */ + +external var on_gui_closed: uint /* uint & `T$93` */ + +external var on_gui_value_changed: uint /* uint & `T$93` */ + +external var on_player_muted: uint /* uint & `T$93` */ + +external var on_player_unmuted: uint /* uint & `T$93` */ + +external var on_player_cheat_mode_enabled: uint /* uint & `T$93` */ + +external var on_player_cheat_mode_disabled: uint /* uint & `T$93` */ + +external var on_character_corpse_expired: uint /* uint & `T$93` */ + +external var on_pre_ghost_deconstructed: uint /* uint & `T$93` */ + +external var on_player_pipette: uint /* uint & `T$93` */ + +external var on_player_display_resolution_changed: uint /* uint & `T$93` */ + +external var on_player_display_scale_changed: uint /* uint & `T$93` */ + +external var on_pre_player_crafted_item: uint /* uint & `T$93` */ + +external var on_player_cancelled_crafting: uint /* uint & `T$93` */ + +external var on_chunk_charted: uint /* uint & `T$93` */ + +external var on_technology_effects_reset: uint /* uint & `T$93` */ + +external var on_force_reset: uint /* uint & `T$93` */ + +external var on_land_mine_armed: uint /* uint & `T$93` */ + +external var on_forces_merged: uint /* uint & `T$93` */ + +external var on_player_trash_inventory_changed: uint /* uint & `T$93` */ + +external var on_pre_player_left_game: uint /* uint & `T$93` */ + +external var on_pre_surface_cleared: uint /* uint & `T$93` */ + +external var on_surface_cleared: uint /* uint & `T$93` */ + +external var on_chunk_deleted: uint /* uint & `T$93` */ + +external var on_pre_chunk_deleted: uint /* uint & `T$93` */ + +external var on_train_schedule_changed: uint /* uint & `T$93` */ + +external var on_player_banned: uint /* uint & `T$93` */ + +external var on_player_kicked: uint /* uint & `T$93` */ + +external var on_player_unbanned: uint /* uint & `T$93` */ + +external var on_rocket_launch_ordered: uint /* uint & `T$93` */ + +external var on_script_path_request_finished: uint /* uint & `T$93` */ + +external var on_ai_command_completed: uint /* uint & `T$93` */ + +external var on_marked_for_upgrade: uint /* uint & `T$93` */ + +external var on_cancelled_upgrade: uint /* uint & `T$93` */ + +external var on_player_toggled_map_editor: uint /* uint & `T$93` */ + +external var on_entity_cloned: uint /* uint & `T$93` */ + +external var on_area_cloned: uint /* uint & `T$93` */ + +external var on_brush_cloned: uint /* uint & `T$93` */ + +external var on_game_created_from_scenario: uint /* uint & `T$93` */ + +external var on_surface_imported: uint /* uint & `T$93` */ + +external var on_surface_renamed: uint /* uint & `T$93` */ + +external var on_player_toggled_alt_mode: uint /* uint & `T$93` */ + +external var on_player_repaired_entity: uint /* uint & `T$93` */ + +external var on_player_fast_transferred: uint /* uint & `T$93` */ + +external var on_pre_robot_exploded_cliff: uint /* uint & `T$93` */ + +external var on_robot_exploded_cliff: uint /* uint & `T$93` */ + +external var on_entity_spawned: uint /* uint & `T$93` */ + +external var on_cutscene_waypoint_reached: uint /* uint & `T$93` */ + +external var on_unit_group_created: uint /* uint & `T$93` */ + +external var on_unit_added_to_group: uint /* uint & `T$93` */ + +external var on_unit_removed_from_group: uint /* uint & `T$93` */ + +external var on_unit_group_finished_gathering: uint /* uint & `T$93` */ + +external var on_build_base_arrived: uint /* uint & `T$93` */ + +external var on_chart_tag_added: uint /* uint & `T$93` */ + +external var on_chart_tag_modified: uint /* uint & `T$93` */ + +external var on_chart_tag_removed: uint /* uint & `T$93` */ + +external var on_lua_shortcut: uint /* uint & `T$93` */ + +external var on_gui_location_changed: uint /* uint & `T$93` */ + +external var on_gui_selected_tab_changed: uint /* uint & `T$93` */ + +external var on_gui_switch_state_changed: uint /* uint & `T$93` */ + +external var on_force_cease_fire_changed: uint /* uint & `T$93` */ + +external var on_force_friends_changed: uint /* uint & `T$93` */ + +external var on_string_translated: uint /* uint & `T$93` */ + +external var on_script_trigger_effect: uint /* uint & `T$93` */ + +external var on_player_set_quick_bar_slot: uint /* uint & `T$93` */ + +external var on_pre_player_toggled_map_editor: uint /* uint & `T$93` */ + +external var on_pre_script_inventory_resized: uint /* uint & `T$93` */ + +external var on_script_inventory_resized: uint /* uint & `T$93` */ + +external var on_entity_destroyed: uint /* uint & `T$93` */ + +external var on_player_clicked_gps_tag: uint /* uint & `T$93` */ + +external var on_player_flushed_fluid: uint /* uint & `T$93` */ + +external var on_permission_group_edited: uint /* uint & `T$93` */ + +external var on_pre_permission_string_imported: uint /* uint & `T$93` */ + +external var on_permission_string_imported: uint /* uint & `T$93` */ + +external var on_pre_permission_group_deleted: uint /* uint & `T$93` */ + +external var on_permission_group_deleted: uint /* uint & `T$93` */ + +external var on_permission_group_added: uint /* uint & `T$93` */ + +external var on_cutscene_cancelled: uint /* uint & `T$93` */ + +external var on_player_configured_spider_remote: uint /* uint & `T$93` */ + +external var on_player_used_spider_remote: uint /* uint & `T$93` */ + +external var on_spider_command_completed: uint /* uint & `T$93` */ + +external var on_entity_logistic_slot_changed: uint /* uint & `T$93` */ + +external var on_equipment_inserted: uint /* uint & `T$93` */ + +external var on_equipment_removed: uint /* uint & `T$93` */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.module_typed-factorio.kt new file mode 100644 index 0000000..0c4e085 --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.module_typed-factorio.kt @@ -0,0 +1,668 @@ +@file:JsQualifier("defines") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class alert_type { + entity_destroyed, + entity_under_attack, + not_enough_construction_robots, + no_material_for_construction, + not_enough_repair_packs, + turret_fire, + custom, + no_storage, + train_out_of_fuel +} + +external enum class behavior_result { + in_progress, + fail, + success, + deleted +} + +external enum class build_check_type { + script, + manual, + manual_ghost, + script_ghost, + blueprint_ghost, + ghost_revive +} + +external enum class chain_signal_state { + none, + all_open, + partially_open, + none_open +} + +external enum class chunk_generated_status { + nothing, + custom_tiles, + basic_tiles, + corrected_tiles, + tiles, + entities +} + +external enum class circuit_condition_index { + inserter_circuit, + inserter_logistic, + lamp, + arithmetic_combinator, + decider_combinator, + constant_combinator, + offshore_pump, + pump +} + +external enum class circuit_connector_id { + accumulator, + constant_combinator, + container, + programmable_speaker, + rail_signal, + rail_chain_signal, + roboport, + storage_tank, + wall, + electric_pole, + inserter, + lamp, + combinator_input, + combinator_output, + offshore_pump, + pump +} + +external enum class command { + attack /* = 0 */, + go_to_location /* = 1 */, + compound /* = 2 */, + group /* = 3 */, + attack_area /* = 4 */, + wander /* = 5 */, + flee /* = 6 */, + stop /* = 7 */, + build_base /* = 8 */ +} + +external enum class compound_command { + logical_and, + logical_or, + return_last +} + +external enum class controllers { + ghost, + character, + god, + editor, + cutscene, + spectator +} + +external enum class difficulty { + easy, + normal, + hard +} + +external enum class direction { + north /* = 0 */, + northeast /* = 1 */, + east /* = 2 */, + southeast /* = 3 */, + south /* = 4 */, + southwest /* = 5 */, + west /* = 6 */, + northwest /* = 7 */ +} + +external enum class disconnect_reason { + quit, + dropped, + reconnect, + wrong_input, + desync_limit_reached, + cannot_keep_up, + afk, + kicked, + kicked_and_deleted, + banned, + switching_servers +} + +external enum class distraction { + none, + by_enemy, + by_anything, + by_damage +} + +external enum class entity_status { + working, + normal, + no_power, + low_power, + no_fuel, + disabled_by_control_behavior, + opened_by_circuit_network, + closed_by_circuit_network, + disabled_by_script, + marked_for_deconstruction, + not_plugged_in_electric_network, + networks_connected, + networks_disconnected, + charging, + discharging, + fully_charged, + out_of_logistic_network, + no_recipe, + no_ingredients, + no_input_fluid, + no_research_in_progress, + no_minable_resources, + low_input_fluid, + fluid_ingredient_shortage, + full_output, + item_ingredient_shortage, + missing_required_fluid, + missing_science_packs, + waiting_for_source_items, + waiting_for_space_in_destination, + preparing_rocket_for_launch, + waiting_to_launch_rocket, + launching_rocket, + no_modules_to_transmit, + recharging_after_power_outage, + waiting_for_target_to_be_built, + waiting_for_train, + no_ammo, + low_temperature, + disabled, + turned_off_during_daytime, + not_connected_to_rail, + cant_divide_segments +} + +external enum class flow_precision_index { + five_seconds, + one_minute, + ten_minutes, + one_hour, + ten_hours, + fifty_hours, + two_hundred_fifty_hours, + one_thousand_hours +} + +external enum class group_state { + gathering, + moving, + attacking_distraction, + attacking_target, + finished, + pathfinding, + wander_in_group +} + +external enum class gui_type { + none, + entity, + research, + controller, + production, + item, + bonus, + trains, + achievement, + blueprint_library, + equipment, + logistic, + other_player, + permissions, + tutorials, + custom, + server_management, + player_management, + tile +} + +external enum class input_action { + activate_copy, + activate_cut, + activate_paste, + add_permission_group, + add_train_station, + admin_action, + alt_select_area, + alt_select_blueprint_entities, + alternative_copy, + begin_mining, + begin_mining_terrain, + build, + build_rail, + build_terrain, + cancel_craft, + cancel_deconstruct, + cancel_new_blueprint, + cancel_research, + cancel_upgrade, + change_active_character_tab, + change_active_item_group_for_crafting, + change_active_item_group_for_filters, + change_active_quick_bar, + change_arithmetic_combinator_parameters, + change_decider_combinator_parameters, + change_entity_label, + change_item_description, + change_item_label, + change_multiplayer_config, + change_picking_state, + change_programmable_speaker_alert_parameters, + change_programmable_speaker_circuit_parameters, + change_programmable_speaker_parameters, + change_riding_state, + change_shooting_state, + change_train_stop_station, + change_train_wait_condition, + change_train_wait_condition_data, + clear_cursor, + connect_rolling_stock, + copy, + copy_entity_settings, + copy_opened_blueprint, + copy_opened_item, + craft, + cursor_split, + cursor_transfer, + custom_input, + cycle_blueprint_book_backwards, + cycle_blueprint_book_forwards, + deconstruct, + delete_blueprint_library, + delete_blueprint_record, + delete_custom_tag, + delete_permission_group, + destroy_item, + destroy_opened_item, + disconnect_rolling_stock, + drag_train_schedule, + drag_train_wait_condition, + drop_blueprint_record, + drop_item, + edit_blueprint_tool_preview, + edit_custom_tag, + edit_permission_group, + export_blueprint, + fast_entity_split, + fast_entity_transfer, + flush_opened_entity_fluid, + flush_opened_entity_specific_fluid, + go_to_train_station, + grab_blueprint_record, + gui_checked_state_changed, + gui_click, + gui_confirmed, + gui_elem_changed, + gui_location_changed, + gui_selected_tab_changed, + gui_selection_state_changed, + gui_switch_state_changed, + gui_text_changed, + gui_value_changed, + import_blueprint, + import_blueprint_string, + import_blueprints_filtered, + import_permissions_string, + inventory_split, + inventory_transfer, + launch_rocket, + lua_shortcut, + map_editor_action, + market_offer, + mod_settings_changed, + open_achievements_gui, + open_blueprint_library_gui, + open_blueprint_record, + open_bonus_gui, + open_character_gui, + open_current_vehicle_gui, + open_equipment, + open_gui, + open_item, + open_logistic_gui, + open_mod_item, + open_parent_of_opened_item, + open_production_gui, + open_technology_gui, + open_tips_and_tricks_gui, + open_train_gui, + open_train_station_gui, + open_trains_gui, + paste_entity_settings, + place_equipment, + quick_bar_pick_slot, + quick_bar_set_selected_page, + quick_bar_set_slot, + reassign_blueprint, + remove_cables, + remove_train_station, + reset_assembling_machine, + reset_item, + rotate_entity, + select_area, + select_blueprint_entities, + select_entity_slot, + select_item, + select_mapper_slot, + select_next_valid_gun, + select_tile_slot, + send_spidertron, + set_auto_launch_rocket, + set_autosort_inventory, + set_behavior_mode, + set_car_weapons_control, + set_circuit_condition, + set_circuit_mode_of_operation, + set_controller_logistic_trash_filter_item, + set_deconstruction_item_tile_selection_mode, + set_deconstruction_item_trees_and_rocks_only, + set_entity_color, + set_entity_energy_property, + set_entity_logistic_trash_filter_item, + set_filter, + set_flat_controller_gui, + set_heat_interface_mode, + set_heat_interface_temperature, + set_infinity_container_filter_item, + set_infinity_container_remove_unfiltered_items, + set_infinity_pipe_filter, + set_inserter_max_stack_size, + set_inventory_bar, + set_linked_container_link_i_d, + set_logistic_filter_item, + set_logistic_filter_signal, + set_player_color, + set_recipe_notifications, + set_request_from_buffers, + set_research_finished_stops_game, + set_signal, + set_splitter_priority, + set_train_stopped, + set_trains_limit, + set_vehicle_automatic_targeting_parameters, + setup_assembling_machine, + setup_blueprint, + setup_single_blueprint_record, + smart_pipette, + spawn_item, + stack_split, + stack_transfer, + start_repair, + start_research, + start_walking, + stop_building_by_moving, + switch_connect_to_logistic_network, + switch_constant_combinator_state, + switch_inserter_filter_mode_state, + switch_power_switch_state, + switch_to_rename_stop_gui, + take_equipment, + toggle_deconstruction_item_entity_filter_mode, + toggle_deconstruction_item_tile_filter_mode, + toggle_driving, + toggle_enable_vehicle_logistics_while_moving, + toggle_entity_logistic_requests, + toggle_equipment_movement_bonus, + toggle_map_editor, + toggle_personal_logistic_requests, + toggle_personal_roboport, + toggle_show_entity_info, + translate_string, + undo, + upgrade, + upgrade_opened_blueprint_by_item, + upgrade_opened_blueprint_by_record, + use_artillery_remote, + use_item, + wire_dragging, + write_to_console +} + +external enum class inventory { + fuel, + burnt_result, + chest, + furnace_source, + furnace_result, + furnace_modules, + character_main, + character_guns, + character_ammo, + character_armor, + character_vehicle, + character_trash, + god_main, + editor_main, + editor_guns, + editor_ammo, + editor_armor, + roboport_robot, + roboport_material, + robot_cargo, + robot_repair, + assembling_machine_input, + assembling_machine_output, + assembling_machine_modules, + lab_input, + lab_modules, + mining_drill_modules, + item_main, + rocket_silo_rocket, + rocket_silo_result, + rocket, + car_trunk, + car_ammo, + cargo_wagon, + turret_ammo, + beacon_modules, + character_corpse, + artillery_turret_ammo, + artillery_wagon_ammo, + spider_trunk, + spider_ammo, + spider_trash +} + +external enum class logistic_member_index { + logistic_container, + vehicle_storage, + character_requester, + character_storage, + character_provider, + generic_on_off_behavior +} + +external enum class logistic_mode { + none, + active_provider, + storage, + requester, + passive_provider, + buffer +} + +external enum class mouse_button_type { + none, + left, + right, + middle +} + +external var prototypes: Any + +external enum class rail_connection_direction { + left, + straight, + right, + none +} + +external enum class rail_direction { + front, + back +} + +external enum class relative_gui_position { + top, + bottom, + left, + right +} + +external enum class relative_gui_type { + accumulator_gui, + achievement_gui, + additional_entity_info_gui, + admin_gui, + arithmetic_combinator_gui, + armor_gui, + assembling_machine_gui, + assembling_machine_select_recipe_gui, + beacon_gui, + blueprint_book_gui, + blueprint_library_gui, + blueprint_setup_gui, + bonus_gui, + burner_equipment_gui, + car_gui, + constant_combinator_gui, + container_gui, + controller_gui, + decider_combinator_gui, + deconstruction_item_gui, + electric_energy_interface_gui, + electric_network_gui, + entity_variations_gui, + entity_with_energy_source_gui, + equipment_grid_gui, + furnace_gui, + generic_on_off_entity_gui, + heat_interface_gui, + infinity_pipe_gui, + inserter_gui, + item_with_inventory_gui, + lab_gui, + lamp_gui, + linked_container_gui, + loader_gui, + logistic_gui, + market_gui, + mining_drill_gui, + other_player_gui, + permissions_gui, + pipe_gui, + power_switch_gui, + production_gui, + programmable_speaker_gui, + rail_chain_signal_gui, + rail_signal_gui, + reactor_gui, + rename_stop_gui, + resource_entity_gui, + roboport_gui, + rocket_silo_gui, + server_config_gui, + spider_vehicle_gui, + splitter_gui, + standalone_character_gui, + storage_tank_gui, + tile_variations_gui, + train_gui, + train_stop_gui, + trains_gui, + transport_belt_gui, + upgrade_item_gui, + wall_gui +} + +external enum class render_mode { + game, + chart, + chart_zoomed_in +} + +external enum class rich_text_setting { + enabled, + disabled, + highlight +} + +external enum class shooting { + not_shooting, + shooting_enemies, + shooting_selected +} + +external enum class signal_state { + open, + closed, + reserved, + reserved_by_circuit_network +} + +external enum class train_state { + on_the_path, + path_lost, + no_schedule, + no_path, + arrive_signal, + wait_signal, + arrive_station, + wait_station, + manual_control_stop, + manual_control, + destination_full +} + +external enum class transport_line { + left_line, + right_line, + left_underground_line, + right_underground_line, + secondary_left_line, + secondary_right_line, + left_split_line, + right_split_line, + secondary_left_split_line, + secondary_right_split_line +} + +external enum class wire_connection_id { + electric_pole, + power_switch_left, + power_switch_right +} + +external enum class wire_type { + red, + green, + copper +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/defines.defines.riding.module_typed-factorio.kt b/modules/mod2/dukat-custom/defines.defines.riding.module_typed-factorio.kt new file mode 100644 index 0000000..936be1e --- /dev/null +++ b/modules/mod2/dukat-custom/defines.defines.riding.module_typed-factorio.kt @@ -0,0 +1,30 @@ +@file:JsQualifier("defines.riding") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package defines.riding + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class acceleration { + nothing, + accelerating, + braking, + reversing +} + +external enum class direction { + left, + straight, + right +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/events.module_typed-factorio.kt b/modules/mod2/dukat-custom/events.module_typed-factorio.kt new file mode 100644 index 0000000..11d3550 --- /dev/null +++ b/modules/mod2/dukat-custom/events.module_typed-factorio.kt @@ -0,0 +1,1574 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Position +import defines.behavior_result +import defines.mouse_button_type +import defines.gui_type +import defines.direction +import defines.input_action +import defines.disconnect_reason +import tsstdlib.Record +import defines.train_state + +external interface CustomInputEvent { + var player_index: uint + var input_name: String + var cursor_position: Position + var selected_prototype: SelectedPrototypeData? + get() = definedExternally + set(value) = definedExternally + var name: String + var tick: uint +} + +external interface OnAiCommandCompletedEvent { + var unit_number: uint + var result: behavior_result + var was_distracted: Boolean + var name: Any + var tick: uint +} + +external interface OnAreaClonedEvent { + var source_surface: LuaSurface + var source_area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var destination_surface: LuaSurface + var destination_area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var destination_force: LuaForce? + get() = definedExternally + set(value) = definedExternally + var clone_tiles: Boolean + var clone_entities: Boolean + var clone_decoratives: Boolean + var clear_destination_entities: Boolean + var clear_destination_decoratives: Boolean + var name: Any + var tick: uint +} + +external interface OnBiterBaseBuiltEvent { + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface OnBrushClonedEvent { + var source_offset: dynamic /* TilePositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var destination_offset: dynamic /* TilePositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var source_surface: LuaSurface + var source_positions: Array */> + var destination_surface: LuaSurface + var destination_force: LuaForce? + get() = definedExternally + set(value) = definedExternally + var clone_tiles: Boolean + var clone_entities: Boolean + var clone_decoratives: Boolean + var clear_destination_entities: Boolean + var clear_destination_decoratives: Boolean + var name: Any + var tick: uint +} + +external interface OnBuildBaseArrivedEvent { + var unit: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var group: LuaUnitGroup? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnBuiltEntityEvent { + var created_entity: LuaEntity + var player_index: uint + var stack: LuaItemStack + var item: LuaItemPrototype? + get() = definedExternally + set(value) = definedExternally + var tags: Tags? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnCancelledDeconstructionEvent { + var entity: LuaEntity + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnCancelledUpgradeEvent { + var entity: LuaEntity + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnCharacterCorpseExpiredEvent { + var corpse: LuaEntity + var name: Any + var tick: uint +} + +external interface OnChartTagAddedEvent { + var tag: LuaCustomChartTag + var force: LuaForce + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnChartTagModifiedEvent { + var tag: LuaCustomChartTag + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var force: LuaForce + var old_text: String + var old_icon: SignalID? + get() = definedExternally + set(value) = definedExternally + var old_player: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnChartTagRemovedEvent { + var tag: LuaCustomChartTag + var force: LuaForce + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnChunkChartedEvent { + var surface_index: uint + var position: dynamic /* ChunkPositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var force: LuaForce + var name: Any + var tick: uint +} + +external interface OnChunkDeletedEvent { + var surface_index: uint + var positions: Array */> + var name: Any + var tick: uint +} + +external interface OnChunkGeneratedEvent { + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var position: dynamic /* ChunkPositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var surface: LuaSurface + var name: Any + var tick: uint +} + +external interface OnCombatRobotExpiredEvent { + var robot: LuaEntity + var owner: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnConsoleChatEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var message: String + var name: Any + var tick: uint +} + +external interface OnConsoleCommandEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var command: String + var parameters: String + var name: Any + var tick: uint +} + +external interface OnCutsceneCancelledEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnCutsceneWaypointReachedEvent { + var player_index: uint + var waypoint_index: uint + var name: Any + var tick: uint +} + +external interface OnDifficultySettingsChangedEvent { + var old_recipe_difficulty: uint + var old_technology_difficulty: uint + var name: Any + var tick: uint +} + +external interface OnEntityClonedEvent { + var source: LuaEntity + var destination: LuaEntity + var name: Any + var tick: uint +} + +external interface OnEntityDamagedEvent { + var entity: LuaEntity + var damage_type: LuaDamagePrototype + var original_damage_amount: float + var final_damage_amount: float + var final_health: float + var cause: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var force: LuaForce? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnEntityDestroyedEvent { + var registration_number: uint64 + var unit_number: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnEntityDiedEvent { + var entity: LuaEntity + var cause: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var loot: LuaInventory + var force: LuaForce? + get() = definedExternally + set(value) = definedExternally + var damage_type: LuaDamagePrototype? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnEntityLogisticSlotChangedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var entity: LuaEntity + var slot_index: uint + var name: Any + var tick: uint +} + +external interface OnEntityRenamedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var by_script: Boolean + var entity: LuaEntity + var old_name: String + var name: Any + var tick: uint +} + +external interface OnEntitySettingsPastedEvent { + var player_index: uint + var source: LuaEntity + var destination: LuaEntity + var name: Any + var tick: uint +} + +external interface OnEntitySpawnedEvent { + var spawner: LuaEntity + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface OnEquipmentInsertedEvent { + var grid: LuaEquipmentGrid + var equipment: LuaEquipment + var name: Any + var tick: uint +} + +external interface OnEquipmentRemovedEvent { + var grid: LuaEquipmentGrid + var equipment: String + var count: uint + var name: Any + var tick: uint +} + +external interface OnForceCeaseFireChangedEvent { + var force: LuaForce + var other_force: LuaForce + var added: Boolean + var name: Any + var tick: uint +} + +external interface OnForceCreatedEvent { + var force: LuaForce + var name: Any + var tick: uint +} + +external interface OnForceFriendsChangedEvent { + var force: LuaForce + var other_force: LuaForce + var added: Boolean + var name: Any + var tick: uint +} + +external interface OnForceResetEvent { + var force: LuaForce + var name: Any + var tick: uint +} + +external interface OnForcesMergedEvent { + var source_name: String + var source_index: uint + var destination: LuaForce + var name: Any + var tick: uint +} + +external interface OnForcesMergingEvent { + var source: LuaForce + var destination: LuaForce + var name: Any + var tick: uint +} + +external interface OnGameCreatedFromScenarioEvent { + var name: Any + var tick: uint +} + +external interface OnGuiCheckedStateChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnGuiClickEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var button: mouse_button_type + var alt: Boolean + var control: Boolean + var shift: Boolean + var name: Any + var tick: uint +} + +external interface OnGuiClosedEvent { + var player_index: uint + var gui_type: gui_type + var entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var item: LuaItemStack? + get() = definedExternally + set(value) = definedExternally + var equipment: LuaEquipment? + get() = definedExternally + set(value) = definedExternally + var other_player: LuaPlayer? + get() = definedExternally + set(value) = definedExternally + var element: dynamic /* ChooseElemButtonGuiElementMembers? | DropDownGuiElementMembers? | EmptyWidgetGuiElementMembers? | EntityPreviewGuiElementMembers? | ListBoxGuiElementMembers? | ScrollPaneGuiElementMembers? | SpriteButtonGuiElementMembers? | TabbedPaneGuiElementMembers? | TextBoxGuiElementMembers? | ButtonGuiElementMembers? | CameraGuiElementMembers? | CheckboxGuiElementMembers? | FlowGuiElementMembers? | FrameGuiElementMembers? | LabelGuiElementMembers? | LineGuiElementMembers? | MinimapGuiElementMembers? | ProgressbarGuiElementMembers? | RadiobuttonGuiElementMembers? | SliderGuiElementMembers? | SpriteGuiElementMembers? | SwitchGuiElementMembers? | TabGuiElementMembers? | TableGuiElementMembers? | TextfieldGuiElementMembers? */ + get() = definedExternally + set(value) = definedExternally + var technology: LuaTechnology? + get() = definedExternally + set(value) = definedExternally + var tile_position: dynamic /* TilePositionTable? | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnGuiConfirmedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var alt: Boolean + var control: Boolean + var shift: Boolean + var name: Any + var tick: uint +} + +external interface OnGuiElemChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnGuiLocationChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnGuiOpenedEvent { + var player_index: uint + var gui_type: gui_type + var entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var item: LuaItemStack? + get() = definedExternally + set(value) = definedExternally + var equipment: LuaEquipment? + get() = definedExternally + set(value) = definedExternally + var other_player: LuaPlayer? + get() = definedExternally + set(value) = definedExternally + var element: dynamic /* ChooseElemButtonGuiElementMembers? | DropDownGuiElementMembers? | EmptyWidgetGuiElementMembers? | EntityPreviewGuiElementMembers? | ListBoxGuiElementMembers? | ScrollPaneGuiElementMembers? | SpriteButtonGuiElementMembers? | TabbedPaneGuiElementMembers? | TextBoxGuiElementMembers? | ButtonGuiElementMembers? | CameraGuiElementMembers? | CheckboxGuiElementMembers? | FlowGuiElementMembers? | FrameGuiElementMembers? | LabelGuiElementMembers? | LineGuiElementMembers? | MinimapGuiElementMembers? | ProgressbarGuiElementMembers? | RadiobuttonGuiElementMembers? | SliderGuiElementMembers? | SpriteGuiElementMembers? | SwitchGuiElementMembers? | TabGuiElementMembers? | TableGuiElementMembers? | TextfieldGuiElementMembers? */ + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnGuiSelectedTabChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnGuiSelectionStateChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnGuiSwitchStateChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnGuiTextChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var text: String + var name: Any + var tick: uint +} + +external interface OnGuiValueChangedEvent { + var element: dynamic /* ChooseElemButtonGuiElementMembers | DropDownGuiElementMembers | EmptyWidgetGuiElementMembers | EntityPreviewGuiElementMembers | ListBoxGuiElementMembers | ScrollPaneGuiElementMembers | SpriteButtonGuiElementMembers | TabbedPaneGuiElementMembers | TextBoxGuiElementMembers | ButtonGuiElementMembers | CameraGuiElementMembers | CheckboxGuiElementMembers | FlowGuiElementMembers | FrameGuiElementMembers | LabelGuiElementMembers | LineGuiElementMembers | MinimapGuiElementMembers | ProgressbarGuiElementMembers | RadiobuttonGuiElementMembers | SliderGuiElementMembers | SpriteGuiElementMembers | SwitchGuiElementMembers | TabGuiElementMembers | TableGuiElementMembers | TextfieldGuiElementMembers */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnLandMineArmedEvent { + var mine: LuaEntity + var name: Any + var tick: uint +} + +external interface OnLuaShortcutEvent { + var player_index: uint + var prototype_name: String + var name: Any + var tick: uint +} + +external interface OnMarkedForDeconstructionEvent { + var entity: LuaEntity + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnMarkedForUpgradeEvent { + var entity: LuaEntity + var target: LuaEntityPrototype + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var direction: direction? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnMarketItemPurchasedEvent { + var player_index: uint + var market: LuaEntity + var offer_index: uint + var count: uint + var name: Any + var tick: uint +} + +external interface OnModItemOpenedEvent { + var player_index: uint + var item: LuaItemPrototype + var name: Any + var tick: uint +} + +external interface OnPermissionGroupAddedEvent { + var player_index: uint + var group: LuaPermissionGroup + var name: Any + var tick: uint +} + +external interface OnPermissionGroupDeletedEvent { + var player_index: uint + var group_name: String + var id: uint + var name: Any + var tick: uint +} + +external interface OnPermissionGroupEditedEvent { + var player_index: uint + var group: LuaPermissionGroup + var type: String /* "add-permission" | "remove-permission" | "enable-all" | "disable-all" | "add-player" | "remove-player" | "rename" */ + var action: input_action + var other_player_index: uint + var old_name: String + var new_name: String + var name: Any + var tick: uint +} + +external interface OnPermissionStringImportedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPickedUpItemEvent { + var item_stack: dynamic /* String | ItemStackDefinition */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerAltSelectedAreaEvent { + var player_index: uint + var surface: LuaSurface + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var item: String + var entities: Array + var tiles: Array + var name: Any + var tick: uint +} + +external interface OnPlayerAmmoInventoryChangedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerArmorInventoryChangedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerBannedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var player_name: String + var by_player: uint? + get() = definedExternally + set(value) = definedExternally + var reason: String? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPlayerBuiltTileEvent { + var player_index: uint + var surface_index: uint + var tiles: Array + var tile: LuaTilePrototype + var item: LuaItemPrototype? + get() = definedExternally + set(value) = definedExternally + var stack: LuaItemStack? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPlayerCancelledCraftingEvent { + var player_index: uint + var items: LuaInventory + var recipe: LuaRecipe + var cancel_count: uint + var name: Any + var tick: uint +} + +external interface OnPlayerChangedForceEvent { + var player_index: uint + var force: LuaForce + var name: Any + var tick: uint +} + +external interface OnPlayerChangedPositionEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerChangedSurfaceEvent { + var player_index: uint + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerCheatModeDisabledEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerCheatModeEnabledEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerClickedGpsTagEvent { + var player_index: uint + var position: Position + var surface: String + var name: Any + var tick: uint +} + +external interface OnPlayerConfiguredBlueprintEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerConfiguredSpiderRemoteEvent { + var player_index: uint + var vehicle: LuaEntity + var name: Any + var tick: uint +} + +external interface OnPlayerCraftedItemEvent { + var item_stack: LuaItemStack + var player_index: uint + var recipe: LuaRecipe + var name: Any + var tick: uint +} + +external interface OnPlayerCreatedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerCursorStackChangedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerDeconstructedAreaEvent { + var player_index: uint + var surface: LuaSurface + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var item: String + var alt: Boolean + var name: Any + var tick: uint +} + +external interface OnPlayerDemotedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerDiedEvent { + var player_index: uint + var cause: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPlayerDisplayResolutionChangedEvent { + var player_index: uint + var old_resolution: DisplayResolution + var name: Any + var tick: uint +} + +external interface OnPlayerDisplayScaleChangedEvent { + var player_index: uint + var old_scale: double + var name: Any + var tick: uint +} + +external interface OnPlayerDrivingChangedStateEvent { + var player_index: uint + var entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPlayerDroppedItemEvent { + var player_index: uint + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface OnPlayerFastTransferredEvent { + var player_index: uint + var entity: LuaEntity + var from_player: Boolean + var name: Any + var tick: uint +} + +external interface OnPlayerFlushedFluidEvent { + var player_index: uint + var fluid: String + var amount: double + var entity: LuaEntity + var only_this_entity: Boolean + var name: Any + var tick: uint +} + +external interface OnPlayerGunInventoryChangedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerJoinedGameEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerKickedEvent { + var player_index: uint + var by_player: uint? + get() = definedExternally + set(value) = definedExternally + var reason: String? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPlayerLeftGameEvent { + var player_index: uint + var reason: disconnect_reason + var name: Any + var tick: uint +} + +external interface OnPlayerMainInventoryChangedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerMinedEntityEvent { + var player_index: uint + var entity: LuaEntity + var buffer: LuaInventory + var name: Any + var tick: uint +} + +external interface OnPlayerMinedItemEvent { + var item_stack: dynamic /* String | ItemStackDefinition */ + get() = definedExternally + set(value) = definedExternally + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerMinedTileEvent { + var player_index: uint + var surface_index: uint + var tiles: Array + var name: Any + var tick: uint +} + +external interface OnPlayerMutedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerPipetteEvent { + var player_index: uint + var item: LuaItemPrototype + var used_cheat_mode: Boolean + var name: Any + var tick: uint +} + +external interface OnPlayerPlacedEquipmentEvent { + var player_index: uint + var equipment: LuaEquipment + var grid: LuaEquipmentGrid + var name: Any + var tick: uint +} + +external interface OnPlayerPromotedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerRemovedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerRemovedEquipmentEvent { + var player_index: uint + var grid: LuaEquipmentGrid + var equipment: String + var count: uint + var name: Any + var tick: uint +} + +external interface OnPlayerRepairedEntityEvent { + var player_index: uint + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface OnPlayerRespawnedEvent { + var player_index: uint + var player_port: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPlayerRotatedEntityEvent { + var entity: LuaEntity + var previous_direction: direction + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerSelectedAreaEvent { + var player_index: uint + var surface: LuaSurface + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var item: String + var entities: Array + var tiles: Array + var name: Any + var tick: uint +} + +external interface OnPlayerSetQuickBarSlotEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerSetupBlueprintEvent { + var player_index: uint + var surface: LuaSurface + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var item: String + var alt: Boolean + var mapping: LuaLazyLoadedValue> + var name: Any + var tick: uint +} + +external interface OnPlayerToggledAltModeEvent { + var player_index: uint + var alt_mode: Boolean + var name: Any + var tick: uint +} + +external interface OnPlayerToggledMapEditorEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerTrashInventoryChangedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerUnbannedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var player_name: String + var by_player: uint? + get() = definedExternally + set(value) = definedExternally + var reason: String? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPlayerUnmutedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPlayerUsedCapsuleEvent { + var player_index: uint + var item: LuaItemPrototype + var position: Position + var name: Any + var tick: uint +} + +external interface OnPlayerUsedSpiderRemoteEvent { + var player_index: uint + var vehicle: LuaEntity + var position: Position + var success: Boolean + var name: Any + var tick: uint +} + +external interface OnPostEntityDiedEvent { + var ghost: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var force: LuaForce? + get() = definedExternally + set(value) = definedExternally + var position: Position + var prototype: LuaEntityPrototype + var damage_type: LuaDamagePrototype? + get() = definedExternally + set(value) = definedExternally + var corpses: Array + var surface_index: uint + var unit_number: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPreBuildEvent { + var player_index: uint + var position: Position + var shift_build: Boolean + var direction: direction + var flip_horizontal: Boolean + var flip_vertical: Boolean + var created_by_moving: Boolean + var name: Any + var tick: uint +} + +external interface OnPreChunkDeletedEvent { + var surface_index: uint + var positions: Array */> + var name: Any + var tick: uint +} + +external interface OnPreEntitySettingsPastedEvent { + var player_index: uint + var source: LuaEntity + var destination: LuaEntity + var name: Any + var tick: uint +} + +external interface OnPreGhostDeconstructedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var ghost: LuaEntity + var name: Any + var tick: uint +} + +external interface OnPrePermissionGroupDeletedEvent { + var player_index: uint + var group: LuaPermissionGroup + var name: Any + var tick: uint +} + +external interface OnPrePermissionStringImportedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPrePlayerCraftedItemEvent { + var player_index: uint + var recipe: LuaRecipe + var items: LuaInventory + var queued_count: uint + var name: Any + var tick: uint +} + +external interface OnPrePlayerDiedEvent { + var player_index: uint + var cause: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnPrePlayerLeftGameEvent { + var player_index: uint + var reason: disconnect_reason + var name: Any + var tick: uint +} + +external interface OnPrePlayerMinedItemEvent { + var entity: LuaEntity + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPrePlayerRemovedEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPrePlayerToggledMapEditorEvent { + var player_index: uint + var name: Any + var tick: uint +} + +external interface OnPreRobotExplodedCliffEvent { + var robot: LuaEntity + var cliff: LuaEntity + var item: LuaItemPrototype + var name: Any + var tick: uint +} + +external interface OnPreScriptInventoryResizedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var mod: String + var inventory: LuaInventory + var old_size: uint + var new_size: uint + var name: Any + var tick: uint +} + +external interface OnPreSurfaceClearedEvent { + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnPreSurfaceDeletedEvent { + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnResearchFinishedEvent { + var research: LuaTechnology + var by_script: Boolean + var name: Any + var tick: uint +} + +external interface OnResearchReversedEvent { + var research: LuaTechnology + var by_script: Boolean + var name: Any + var tick: uint +} + +external interface OnResearchStartedEvent { + var research: LuaTechnology + var last_research: LuaTechnology? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnResourceDepletedEvent { + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface OnRobotBuiltEntityEvent { + var robot: LuaEntity + var created_entity: LuaEntity + var stack: LuaItemStack + var tags: Tags? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnRobotBuiltTileEvent { + var robot: LuaEntity + var tiles: Array + var tile: LuaTilePrototype + var item: LuaItemPrototype + var stack: LuaItemStack + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnRobotExplodedCliffEvent { + var robot: LuaEntity + var item: LuaItemPrototype + var name: Any + var tick: uint +} + +external interface OnRobotMinedEvent { + var robot: LuaEntity + var item_stack: dynamic /* String | ItemStackDefinition */ + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnRobotMinedEntityEvent { + var robot: LuaEntity + var entity: LuaEntity + var buffer: LuaInventory + var name: Any + var tick: uint +} + +external interface OnRobotMinedTileEvent { + var robot: LuaEntity + var tiles: Array + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnRobotPreMinedEvent { + var robot: LuaEntity + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface OnRocketLaunchOrderedEvent { + var rocket: LuaEntity + var rocket_silo: LuaEntity + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnRocketLaunchedEvent { + var rocket: LuaEntity + var rocket_silo: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnRuntimeModSettingChangedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var setting: String + var setting_type: String /* "runtime-per-user" | "runtime-global" */ + var name: Any + var tick: uint +} + +external interface OnScriptInventoryResizedEvent { + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var mod: String + var inventory: LuaInventory + var old_size: uint + var new_size: uint + var overflow_inventory: LuaInventory + var name: Any + var tick: uint +} + +external interface OnScriptPathRequestFinishedEvent { + var path: Array? + get() = definedExternally + set(value) = definedExternally + var id: uint + var try_again_later: Boolean + var name: Any + var tick: uint +} + +external interface OnScriptTriggerEffectEvent { + var effect_id: String + var surface_index: uint + var source_position: Position? + get() = definedExternally + set(value) = definedExternally + var source_entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var target_position: Position? + get() = definedExternally + set(value) = definedExternally + var target_entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnSectorScannedEvent { + var radar: LuaEntity + var chunk_position: dynamic /* ChunkPositionTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var area: dynamic /* BoundingBoxTable | JsTuple */ + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnSelectedEntityChangedEvent { + var player_index: uint + var last_entity: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnSpiderCommandCompletedEvent { + var vehicle: LuaEntity + var name: Any + var tick: uint +} + +external interface OnStringTranslatedEvent { + var player_index: uint + var localised_string: dynamic /* JsTuple | String | Number */ + get() = definedExternally + set(value) = definedExternally + var result: String + var translated: Boolean + var name: Any + var tick: uint +} + +external interface OnSurfaceClearedEvent { + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnSurfaceCreatedEvent { + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnSurfaceDeletedEvent { + var surface_index: uint + var name: Any + var tick: uint +} + +external interface OnSurfaceImportedEvent { + var surface_index: uint + var original_name: String + var name: Any + var tick: uint +} + +external interface OnSurfaceRenamedEvent { + var surface_index: uint + var old_name: String + var new_name: String + var name: Any + var tick: uint +} + +external interface OnTechnologyEffectsResetEvent { + var force: LuaForce + var name: Any + var tick: uint +} + +external interface OnTickEvent { + var name: Any + var tick: uint +} + +external interface OnTrainChangedStateEvent { + var train: LuaTrain + var old_state: train_state + var name: Any + var tick: uint +} + +external interface OnTrainCreatedEvent { + var train: LuaTrain + var old_train_id_1: uint? + get() = definedExternally + set(value) = definedExternally + var old_train_id_2: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnTrainScheduleChangedEvent { + var train: LuaTrain + var player_index: uint? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnTriggerCreatedEntityEvent { + var entity: LuaEntity + var source: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnTriggerFiredArtilleryEvent { + var entity: LuaEntity + var source: LuaEntity? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface OnUnitAddedToGroupEvent { + var unit: LuaEntity + var group: LuaUnitGroup + var name: Any + var tick: uint +} + +external interface OnUnitGroupCreatedEvent { + var group: LuaUnitGroup + var name: Any + var tick: uint +} + +external interface OnUnitGroupFinishedGatheringEvent { + var group: LuaUnitGroup + var name: Any + var tick: uint +} + +external interface OnUnitRemovedFromGroupEvent { + var unit: LuaEntity + var group: LuaUnitGroup + var name: Any + var tick: uint +} + +external interface OnWorkerRobotExpiredEvent { + var robot: LuaEntity + var name: Any + var tick: uint +} + +external interface ScriptRaisedBuiltEvent { + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface ScriptRaisedDestroyEvent { + var entity: LuaEntity + var name: Any + var tick: uint +} + +external interface ScriptRaisedReviveEvent { + var entity: LuaEntity + var tags: Tags? + get() = definedExternally + set(value) = definedExternally + var name: Any + var tick: uint +} + +external interface ScriptRaisedSetTilesEvent { + var surface_index: uint + var tiles: Array + var name: Any + var tick: uint +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/global-objects.module_typed-factorio.kt b/modules/mod2/dukat-custom/global-objects.module_typed-factorio.kt new file mode 100644 index 0000000..5eaab96 --- /dev/null +++ b/modules/mod2/dukat-custom/global-objects.module_typed-factorio.kt @@ -0,0 +1,29 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external var game: LuaGameScript + +external var script: LuaBootstrap + +external var remote: LuaRemote + +external var commands: LuaCommandProcessor + +external var settings: LuaSettings + +external var rcon: LuaRCON + +external var rendering: LuaRendering \ No newline at end of file diff --git a/modules/mod2/dukat-custom/global.module_lua-types.kt b/modules/mod2/dukat-custom/global.module_lua-types.kt new file mode 100644 index 0000000..e25a73e --- /dev/null +++ b/modules/mod2/dukat-custom/global.module_lua-types.kt @@ -0,0 +1,81 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Record +import tsstdlib.Iterable + +external interface LuaThread { + var __internal__: Any +} + +external interface LuaUserdata { + var __internal__: Any +} + +external var _VERSION: String /* "Lua 5.1" | "Lua 5.2" | "Lua 5.3" | "Lua 5.4" */ + +external var _G: Any + +external fun assert(v: V): Any + +external fun > assert(v: V, vararg args: A): dynamic /* JsTuple, Any> */ + +external fun collectgarbage(opt: String /* "collect" | "stop" | "restart" */ = definedExternally) + +external fun collectgarbage() + +external fun collectgarbage(opt: String /* "setpause" | "setstepmul" | "step" */, arg: Number): dynamic /* Number | Boolean */ + +external fun dofile(filename: String = definedExternally): Any + +external fun error(message: String, level: Number = definedExternally): Any + +external fun getmetatable(obj: T): LuaMetatable__1? + +external fun ipairs(t: Record): Iterable> */> /* Iterable> */> & LuaIterator> */, undefined> & LuaExtension */ + +external fun next(table: Any?, index: Any = definedExternally): dynamic /* JsTuple | JsTuple<> */ + +external fun pairs(t: LuaTable): Iterable> */> /* Iterable> */> & LuaIterator> */, undefined> & LuaExtension */ + +external fun pairs(t: T): Iterable> */> /* Iterable> */> & LuaIterator> */, undefined> & LuaExtension */ + +external fun , R> pcall(f: (self: This, args: Args) -> R, context: This, vararg args: Args): dynamic /* JsTuple | JsTuple */ + +external fun , R> pcall(f: (self: Unit, args: A) -> R, vararg args: A): dynamic /* JsTuple | JsTuple */ + +external fun print(vararg args: Any) + +external fun rawequal(v1: T, v2: T): Boolean + +external fun rawget(table: T, index: K): Any + +external fun rawlen(v: Any?): Number + +external fun rawlen(v: String?): Number + +external fun rawset(table: T, index: K, value: Any): T + +external fun select(index: Number, vararg args: T): Array /* Array & LuaExtension */ + +external fun select(index: String /* "#" */, vararg args: T): Number + +external fun setmetatable(table: T, metatable: LuaMetatable? = definedExternally): Any + +external fun tonumber(e: Any, base: Number = definedExternally): Number? + +external fun tostring(v: Any): String + +external fun type(v: Any): String /* "nil" | "number" | "string" | "boolean" | "table" | "function" | "thread" | "userdata" */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/index.module_typescript-to-lua.kt b/modules/mod2/dukat-custom/index.module_typescript-to-lua.kt new file mode 100644 index 0000000..25e92fc --- /dev/null +++ b/modules/mod2/dukat-custom/index.module_typescript-to-lua.kt @@ -0,0 +1,42 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Record +import tsstdlib.Iterable + +typealias AnyTable = Record + +external interface AnyNotNil + +typealias LuaExtension = Any + +external var `$multi`: (values: T) -> T /* (values: T) -> T & LuaExtension */ + +external var `$range`: (start: Number, limit: Number, step: Number) -> Iterable /* (start: Number, limit: Number, step: Number) -> Iterable & LuaExtension */ + +external var `$vararg`: Array /* Array & LuaExtension */ + +typealias LuaIterator = Any + +@Suppress("EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +external interface LuaTable { + var length: () -> Number /* () -> Number & LuaExtension */ + var get: (key: TKey) -> TValue /* (key: TKey) -> TValue & LuaExtension */ + var set: (key: TKey, value: TValue) -> Unit /* (key: TKey, value: TValue) -> Unit & LuaExtension */ + var has: (key: TKey) -> Boolean /* (key: TKey) -> Boolean & LuaExtension */ + var delete: (key: TKey) -> Boolean /* (key: TKey) -> Boolean & LuaExtension */ + + companion object : Any by definedExternally +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/io.io.module_lua-types.kt b/modules/mod2/dukat-custom/io.io.module_lua-types.kt new file mode 100644 index 0000000..80cd0cd --- /dev/null +++ b/modules/mod2/dukat-custom/io.io.module_lua-types.kt @@ -0,0 +1,57 @@ +@file:JsQualifier("io") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package io + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import LuaFile +import tsstdlib.Iterable + +external fun close(file: LuaFile = definedExternally): Boolean + +external fun flush(): Boolean + +external fun input(file: String = definedExternally): LuaFile + +external fun input(): LuaFile + +external fun input(file: LuaFile = definedExternally): LuaFile + +external fun > lines(filename: String = definedExternally, vararg formats: T): Iterable */> /* Iterable */> & LuaIterator */, undefined> & LuaExtension */ + +external fun open(filename: String, mode: String = definedExternally): dynamic /* JsTuple | JsTuple */ + +external fun output(file: String = definedExternally): LuaFile + +external fun output(): LuaFile + +external fun output(file: LuaFile = definedExternally): LuaFile + +external fun popen(prog: String, mode: String /* "r" | "w" */ = definedExternally): dynamic /* JsTuple | JsTuple */ + +external fun read(): FileReadFormatToType? + +external fun read(format: T): FileReadFormatToType? /* Any & LuaExtension */ + +external var stderr: LuaFile + +external var stdin: LuaFile + +external var stdout: LuaFile + +external fun tmpfile(): LuaFile + +external fun type(obj: Any): String /* "file" | "closed file" */ + +external fun write(vararg args: Any /* String | Number */): dynamic /* JsTuple | JsTuple */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/io.module_lua-types.kt b/modules/mod2/dukat-custom/io.module_lua-types.kt new file mode 100644 index 0000000..abe679d --- /dev/null +++ b/modules/mod2/dukat-custom/io.module_lua-types.kt @@ -0,0 +1,28 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Iterable +import io.FileReadFormatToType + +external interface LuaFile { + fun close(): Boolean + fun flush(): Boolean + fun > lines(vararg formats: T): Iterable */> /* Iterable */> & LuaIterator */, undefined> & LuaExtension */ + fun read(): FileReadFormatToType? + fun read(format: T): FileReadFormatToType? /* Any & LuaExtension */ + fun seek(whence: String /* "set" | "cur" | "end" */ = definedExternally, offset: Number = definedExternally): dynamic /* JsTuple | JsTuple */ + fun setvbuf(mode: String /* "no" | "full" | "line" */, size: Number = definedExternally) + fun write(vararg args: Any /* String | Number */): dynamic /* JsTuple | JsTuple */ +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/lib.dom.kt b/modules/mod2/dukat-custom/lib.dom.kt new file mode 100644 index 0000000..09e0f80 --- /dev/null +++ b/modules/mod2/dukat-custom/lib.dom.kt @@ -0,0 +1,31 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface Coordinates { + var accuracy: Number + var altitude: Number? + var altitudeAccuracy: Number? + var heading: Number? + var latitude: Number + var longitude: Number + var speed: Number? +} + +external interface Position { + var coords: Coordinates + var timestamp: Number +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/lib.es2015.iterable.kt b/modules/mod2/dukat-custom/lib.es2015.iterable.kt new file mode 100644 index 0000000..fd548b7 --- /dev/null +++ b/modules/mod2/dukat-custom/lib.es2015.iterable.kt @@ -0,0 +1,40 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface IteratorYieldResult { + var done: Boolean? + get() = definedExternally + set(value) = definedExternally + var value: TYield +} + +external interface IteratorReturnResult { + var done: Boolean + var value: TReturn +} + +external interface Iterator { + fun next(vararg args: Any /* JsTuple<> | JsTuple */): dynamic /* IteratorYieldResult | IteratorReturnResult */ + val `return`: ((value: TReturn) -> dynamic)? + val `throw`: ((e: Any) -> dynamic)? +} + +typealias Iterator__1 = Iterator + +external interface Iterable + +external interface IterableIterator : Iterator__1 \ No newline at end of file diff --git a/modules/mod2/dukat-custom/lib.es5.kt b/modules/mod2/dukat-custom/lib.es5.kt new file mode 100644 index 0000000..8235e3b --- /dev/null +++ b/modules/mod2/dukat-custom/lib.es5.kt @@ -0,0 +1,74 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface FunctionConstructor { + @nativeInvoke + operator fun invoke(vararg args: String): Function<*> + var prototype: Function<*> +} + +external interface ConcatArray { + var length: Number + @nativeGetter + operator fun get(n: Number): T? + @nativeSetter + operator fun set(n: Number, value: T) + fun join(separator: String = definedExternally): String + fun slice(start: Number = definedExternally, end: Number = definedExternally): Array +} + +external interface ArrayConstructor { + fun from(iterable: Iterable): Array + fun from(iterable: ArrayLike): Array + fun from(iterable: Iterable, mapfn: (v: T, k: Number) -> U, thisArg: Any = definedExternally): Array + fun from(iterable: Iterable, mapfn: (v: T, k: Number) -> U): Array + fun from(iterable: ArrayLike, mapfn: (v: T, k: Number) -> U, thisArg: Any = definedExternally): Array + fun from(iterable: ArrayLike, mapfn: (v: T, k: Number) -> U): Array + fun of(vararg items: T): Array + @nativeInvoke + operator fun invoke(arrayLength: Number = definedExternally): Array + @nativeInvoke + operator fun invoke(): Array + @nativeInvoke + operator fun invoke(arrayLength: Number): Array + @nativeInvoke + operator fun invoke(vararg items: T): Array + fun isArray(arg: Any): Boolean + var prototype: Array +} + +external interface ArrayLike { + var length: Number + @nativeGetter + operator fun get(n: Number): T? + @nativeSetter + operator fun set(n: Number, value: T) +} + +typealias Partial = Any + +typealias Pick = Any + +typealias Record = Any + +typealias Exclude = Any + +typealias Extract = Any + +typealias Omit = Any + +typealias NonNullable = Any \ No newline at end of file diff --git a/modules/mod2/dukat-custom/librariesAndFunctions.module_typed-factorio.kt b/modules/mod2/dukat-custom/librariesAndFunctions.module_typed-factorio.kt new file mode 100644 index 0000000..547ceff --- /dev/null +++ b/modules/mod2/dukat-custom/librariesAndFunctions.module_typed-factorio.kt @@ -0,0 +1,135 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface `T$95` { + var tag: String + var head: String + var body: String + var tail: String + var level: Number +} + +external interface SerpentOptions { + var indent: String + var comment: dynamic /* Boolean | Number */ + get() = definedExternally + set(value) = definedExternally + var sortkeys: dynamic /* Boolean | (this: Unit, keys: Array, table: Any) -> Unit */ + get() = definedExternally + set(value) = definedExternally + var sparse: Boolean + var compact: Boolean + var fatal: Boolean + var nocode: Boolean + var nohuge: Boolean + var maxlevel: Number + var maxnum: Number + var maxlength: Number + var metatostring: Boolean + var numformat: String + var valignore: Array + var keyallow: Array + var keyignore: Array + var valtypeignore: Array + fun custom(opts: `T$95`): String + var name: String + var refcomment: dynamic /* Boolean | Number */ + get() = definedExternally + set(value) = definedExternally + var tablecomment: dynamic /* Boolean | Number */ + get() = definedExternally + set(value) = definedExternally +} + +external interface SerpentOptionsPartial { + var indent: String? + get() = definedExternally + set(value) = definedExternally + var comment: dynamic /* Boolean? | Number? */ + get() = definedExternally + set(value) = definedExternally + var sortkeys: dynamic /* Boolean? | ((this: Unit, keys: Array, table: Any) -> Unit)? */ + get() = definedExternally + set(value) = definedExternally + var sparse: Boolean? + get() = definedExternally + set(value) = definedExternally + var compact: Boolean? + get() = definedExternally + set(value) = definedExternally + var fatal: Boolean? + get() = definedExternally + set(value) = definedExternally + var nocode: Boolean? + get() = definedExternally + set(value) = definedExternally + var nohuge: Boolean? + get() = definedExternally + set(value) = definedExternally + var maxlevel: Number? + get() = definedExternally + set(value) = definedExternally + var maxnum: Number? + get() = definedExternally + set(value) = definedExternally + var maxlength: Number? + get() = definedExternally + set(value) = definedExternally + var metatostring: Boolean? + get() = definedExternally + set(value) = definedExternally + var numformat: String? + get() = definedExternally + set(value) = definedExternally + var valignore: Array? + get() = definedExternally + set(value) = definedExternally + var keyallow: Array? + get() = definedExternally + set(value) = definedExternally + var keyignore: Array? + get() = definedExternally + set(value) = definedExternally + var valtypeignore: Array? + get() = definedExternally + set(value) = definedExternally + var custom: ((opts: `T$95`) -> String)? + get() = definedExternally + set(value) = definedExternally + var name: String? + get() = definedExternally + set(value) = definedExternally + var refcomment: dynamic /* Boolean? | Number? */ + get() = definedExternally + set(value) = definedExternally + var tablecomment: dynamic /* Boolean? | Number? */ + get() = definedExternally + set(value) = definedExternally +} + +external fun log(ls: Any /* JsTuple */) + +external fun log(ls: String) + +external fun log(ls: Number) + +external fun localised_print(ls: Any /* JsTuple */) + +external fun localised_print(ls: String) + +external fun localised_print(ls: Number) + +external fun table_size(tbl: table): Number \ No newline at end of file diff --git a/modules/mod2/dukat-custom/librariesAndFunctions.serpent.module_typed-factorio.kt b/modules/mod2/dukat-custom/librariesAndFunctions.serpent.module_typed-factorio.kt new file mode 100644 index 0000000..223480e --- /dev/null +++ b/modules/mod2/dukat-custom/librariesAndFunctions.serpent.module_typed-factorio.kt @@ -0,0 +1,32 @@ +@file:JsQualifier("serpent") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package serpent + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import SerpentOptionsPartial + +external fun dump(tbl: Any, options: SerpentOptionsPartial = definedExternally): String + +external fun line(tbl: Any, options: SerpentOptionsPartial = definedExternally): String + +external fun block(tbl: Any, options: SerpentOptionsPartial = definedExternally): String + +external interface `T$96` { + var safe: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external fun load(str: String, options: `T$96` = definedExternally): dynamic /* JsTuple | JsTuple */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/math.math.module_lua-types.kt b/modules/mod2/dukat-custom/math.math.module_lua-types.kt new file mode 100644 index 0000000..8012ac2 --- /dev/null +++ b/modules/mod2/dukat-custom/math.math.module_lua-types.kt @@ -0,0 +1,75 @@ +@file:JsQualifier("math") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package math + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun abs(x: Number): Number + +external fun acos(x: Number): Number + +external fun asin(x: Number): Number + +external fun ceil(x: Number): Number + +external fun cos(x: Number): Number + +external fun deg(x: Number): Number + +external fun exp(x: Number): Number + +external fun floor(x: Number): Number + +external fun fmod(x: Number, y: Number): Number + +external var huge: Number + +external fun max(x: Number, vararg numbers: Number): Number + +external fun min(x: Number, vararg numbers: Number): Number + +external fun modf(x: Number): dynamic /* JsTuple */ + +external var pi: Number + +external fun rad(x: Number): Number + +external fun sin(x: Number): Number + +external fun sqrt(x: Number): Number + +external fun tan(x: Number): Number + +external fun log(x: Number, base: Number = definedExternally): Number + +external fun atan(x: Number): Number + +external fun atan2(y: Number, x: Number): Number + +external fun cosh(x: Number): Number + +external fun frexp(x: Number): Number + +external fun ldexp(m: Number, e: Number): Number + +external fun pow(x: Number, y: Number): Number + +external fun sinh(x: Number): Number + +external fun tanh(x: Number): Number + +external fun random(m: Number = definedExternally, n: Number = definedExternally): Number + +external fun randomseed(x: Number): Number \ No newline at end of file diff --git a/modules/mod2/dukat-custom/metatable.module_lua-types.kt b/modules/mod2/dukat-custom/metatable.module_lua-types.kt new file mode 100644 index 0000000..c538a64 --- /dev/null +++ b/modules/mod2/dukat-custom/metatable.module_lua-types.kt @@ -0,0 +1,49 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface LuaMetatable { + val __pairs: ((t: T) -> dynamic)? + val __ipairs: ((t: T) -> dynamic)? + val __add: ((operand: Any) -> Any)? + val __sub: ((operand: Any) -> Any)? + val __mul: ((operand: Any) -> Any)? + val __div: ((operand: Any) -> Any)? + val __mod: ((operand: Any) -> Any)? + val __pow: ((operand: Any) -> Any)? + val __unm: ((operand: Any) -> Any)? + val __concat: ((operand: Any) -> Any)? + val __len: (() -> Any)? + val __eq: ((operand: Any) -> Boolean)? + val __lt: ((operand: Any) -> Boolean)? + val __le: ((operand: Any) -> Boolean)? + var __index: TIndex? + get() = definedExternally + set(value) = definedExternally + var __newindex: dynamic /* Any? | ((this: T, key: Any, value: Any) -> Unit)? */ + get() = definedExternally + set(value) = definedExternally + val __call: ((args: Any) -> Any)? + val __tostring: (() -> String)? + var __mode: String? /* "k" | "v" | "kv" */ + get() = definedExternally + set(value) = definedExternally + var __metatable: Any? + get() = definedExternally + set(value) = definedExternally + val __gc: (() -> Unit)? +} + +external interface LuaMetatable__1 : LuaMetatable Any)? */> \ No newline at end of file diff --git a/modules/mod2/dukat-custom/mod-gui.mod_gui.module_typed-factorio.kt b/modules/mod2/dukat-custom/mod-gui.mod_gui.module_typed-factorio.kt new file mode 100644 index 0000000..64f0b7b --- /dev/null +++ b/modules/mod2/dukat-custom/mod-gui.mod_gui.module_typed-factorio.kt @@ -0,0 +1,29 @@ +@file:JsModule("mod-gui") +@file:JsNonModule +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package mod_gui + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import LuaPlayer +import FrameGuiElementMembers +import FlowGuiElementMembers + +external var button_style: String + +external var frame_style: String + +external fun get_button_flow(player: LuaPlayer): FrameGuiElementMembers /* FrameGuiElementMembers & GuiElementIndex */ + +external fun get_frame_flow(player: LuaPlayer): FlowGuiElementMembers /* FlowGuiElementMembers & GuiElementIndex */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/modules.module_lua-types.kt b/modules/mod2/dukat-custom/modules.module_lua-types.kt new file mode 100644 index 0000000..b4ffe28 --- /dev/null +++ b/modules/mod2/dukat-custom/modules.module_lua-types.kt @@ -0,0 +1,17 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun require(modname: String): Any \ No newline at end of file diff --git a/modules/mod2/dukat-custom/modules.package.module_lua-types.kt b/modules/mod2/dukat-custom/modules.package.module_lua-types.kt new file mode 100644 index 0000000..fefc008 --- /dev/null +++ b/modules/mod2/dukat-custom/modules.package.module_lua-types.kt @@ -0,0 +1,34 @@ +@file:JsQualifier("package") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package `package` + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Record + +external var config: String + +external var cpath: String + +external var loaded: Record + +external fun loadlib(libname: String, funcname: String): dynamic /* JsTuple> | JsTuple */ + +external var path: String + +external var preload: Record Any> + +external fun searchpath(name: String, path: String, sep: String = definedExternally, rep: String = definedExternally): String + +external var searchers: Array dynamic | (modname: String) -> dynamic | String */> \ No newline at end of file diff --git a/modules/mod2/dukat-custom/nonDeclarations.io.kt b/modules/mod2/dukat-custom/nonDeclarations.io.kt new file mode 100644 index 0000000..3fc06db --- /dev/null +++ b/modules/mod2/dukat-custom/nonDeclarations.io.kt @@ -0,0 +1,18 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package io + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +typealias FileReadFormatToType = Any \ No newline at end of file diff --git a/modules/mod2/dukat-custom/os.module_lua-types.kt b/modules/mod2/dukat-custom/os.module_lua-types.kt new file mode 100644 index 0000000..a6818b4 --- /dev/null +++ b/modules/mod2/dukat-custom/os.module_lua-types.kt @@ -0,0 +1,45 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface LuaDateInfo { + var year: Number + var month: Number + var day: Number + var hour: Number? + get() = definedExternally + set(value) = definedExternally + var min: Number? + get() = definedExternally + set(value) = definedExternally + var sec: Number? + get() = definedExternally + set(value) = definedExternally + var isdst: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface LuaDateInfoResult { + var year: Number + var month: Number + var day: Number + var hour: Number + var min: Number + var sec: Number + var isdst: Boolean + var yday: Number + var wday: Number +} \ No newline at end of file diff --git a/modules/mod2/dukat-custom/os.os.module_lua-types.kt b/modules/mod2/dukat-custom/os.os.module_lua-types.kt new file mode 100644 index 0000000..9fc56e1 --- /dev/null +++ b/modules/mod2/dukat-custom/os.os.module_lua-types.kt @@ -0,0 +1,56 @@ +@file:JsQualifier("os") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package os + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import LuaDateInfo + +external fun clock(): Number + +external fun date(format: String /* "*t" */ = definedExternally, time: Number = definedExternally): dynamic /* String | LuaDateInfoResult */ + +external fun date(): String + +external fun date(format: String /* "*t" */ = definedExternally): dynamic /* String | LuaDateInfoResult */ + +external fun difftime(t1: Number, t2: Number): Number + +external fun getenv(varname: String): String? + +external fun remove(filename: String): dynamic /* JsTuple | JsTuple */ + +external fun rename(oldname: String, newname: String): dynamic /* JsTuple | JsTuple */ + +external fun setlocale(locale: String = definedExternally, category: String /* "all" | "collate" | "ctype" | "monetary" | "numeric" | "time" */ = definedExternally): String? + +external fun time(): Number + +external fun time(table: LuaDateInfo): Number + +external fun tmpname(): String + +external fun execute(): Boolean + +external fun execute(command: String): dynamic /* JsTuple */ + +external fun exit(code: Boolean = definedExternally, close: Boolean = definedExternally): Any + +external fun exit(): Any + +external fun exit(code: Boolean = definedExternally): Any + +external fun exit(code: Number = definedExternally, close: Boolean = definedExternally): Any + +external fun exit(code: Number = definedExternally): Any \ No newline at end of file diff --git a/modules/mod2/dukat-custom/pairs.module_typed-factorio.kt b/modules/mod2/dukat-custom/pairs.module_typed-factorio.kt new file mode 100644 index 0000000..18d966d --- /dev/null +++ b/modules/mod2/dukat-custom/pairs.module_typed-factorio.kt @@ -0,0 +1,22 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Iterable + +external fun pairs(table: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */): Iterable */> /* Iterable */> & LuaIterator */, undefined> & LuaExtension */ + +external fun pairs(table: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */): Iterable */> /* Iterable */> & LuaIterator */, undefined> & LuaExtension */ + +external fun ipairs(table: LuaCustomTableMembers /* LuaCustomTableMembers & CustomTableIndex */): Any \ No newline at end of file diff --git a/modules/mod2/dukat-custom/string.string.module_lua-types.kt b/modules/mod2/dukat-custom/string.string.module_lua-types.kt new file mode 100644 index 0000000..8910e62 --- /dev/null +++ b/modules/mod2/dukat-custom/string.string.module_lua-types.kt @@ -0,0 +1,63 @@ +@file:JsQualifier("string") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package string + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Iterable +import tsstdlib.Record + +external fun byte(s: String, i: Number = definedExternally): dynamic /* Number | Array */ + +external fun byte(s: String): dynamic /* Number | Array */ + +external fun byte(s: String, i: Number = definedExternally, j: Number = definedExternally): Array /* Array & LuaExtension */ + +external fun char(vararg args: Number): String + +external fun dump(func: Function<*>): String + +external fun find(s: String, pattern: String, init: Number = definedExternally, plain: Boolean = definedExternally): dynamic /* JsTuple | JsTuple<> */ + +external fun format(formatstring: String, vararg args: Any): String + +external fun gmatch(s: String, pattern: String): Iterable /* Array & LuaExtension */> /* Iterable /* Array & LuaExtension */> & LuaIterator /* Array & LuaExtension */, undefined> & LuaExtension */ + +external fun gsub(s: String, pattern: String, repl: String, n: Number = definedExternally): dynamic /* JsTuple */ + +external fun gsub(s: String, pattern: String, repl: String): dynamic /* JsTuple */ + +external fun gsub(s: String, pattern: String, repl: Record, n: Number = definedExternally): dynamic /* JsTuple */ + +external fun gsub(s: String, pattern: String, repl: Record): dynamic /* JsTuple */ + +external fun gsub(s: String, pattern: String, repl: (matches: String) -> String, n: Number = definedExternally): dynamic /* JsTuple */ + +external fun gsub(s: String, pattern: String, repl: (matches: String) -> String): dynamic /* JsTuple */ + +external fun len(s: String): Number + +external fun lower(s: String): String + +external fun match(s: String, pattern: String, init: Number = definedExternally): Array /* Array & LuaExtension */ + +external fun rep(s: String, n: Number): String + +external fun reverse(s: String): String + +external fun sub(s: String, i: Number, j: Number = definedExternally): String + +external fun upper(s: String): String + +external fun rep(s: String, n: Number, sep: String = definedExternally): String \ No newline at end of file diff --git a/modules/mod2/dukat-custom/table.table.module_lua-types.kt b/modules/mod2/dukat-custom/table.table.module_lua-types.kt new file mode 100644 index 0000000..63cd957 --- /dev/null +++ b/modules/mod2/dukat-custom/table.table.module_lua-types.kt @@ -0,0 +1,39 @@ +@file:JsQualifier("table") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package table + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun concat(list: Array, sep: String = definedExternally, i: Number = definedExternally, j: Number = definedExternally): String + +external fun insert(list: Array, value: T) + +external fun insert(list: Array, pos: Number, value: T) + +external fun remove(list: Array, pos: Number = definedExternally): T? + +external fun sort(list: Array, comp: (a: T, b: T) -> Boolean = definedExternally) + +external fun > unpack(list: T): T /* T & LuaExtension */ + +external fun unpack(list: Array, i: Number, j: Number = definedExternally): Array /* Array & LuaExtension */ + +external fun unpack(list: Array, i: Number): Array /* Array & LuaExtension */ + +external interface `T$92` { + var n: Number +} + +external fun > pack(vararg args: T): T /* T & `T$92` */ \ No newline at end of file diff --git a/modules/mod2/dukat-custom/types.module_typed-factorio.kt b/modules/mod2/dukat-custom/types.module_typed-factorio.kt new file mode 100644 index 0000000..11d34eb --- /dev/null +++ b/modules/mod2/dukat-custom/types.module_typed-factorio.kt @@ -0,0 +1,91 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Record + +external interface BaseSettingDefinition { + var type: String /* "bool-setting" | "int-setting" | "double-setting" | "string-setting" */ + var name: String + var localized_name: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var localized_description: dynamic /* JsTuple | String? | Number? */ + get() = definedExternally + set(value) = definedExternally + var order: String? + get() = definedExternally + set(value) = definedExternally + var hidden: Boolean? + get() = definedExternally + set(value) = definedExternally + var setting_type: String /* "startup" | "runtime-global" | "runtime-per-user" */ +} + +external interface BoolSettingDefinition : BaseSettingDefinition { + override var type: String /* "bool-setting" */ + var default_value: Boolean + var forced_value: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface IntSettingDefinition : BaseSettingDefinition { + override var type: String /* "int-setting" */ + var default_value: Number + var minimum_value: Number? + get() = definedExternally + set(value) = definedExternally + var maximum_value: Number? + get() = definedExternally + set(value) = definedExternally + var allowed_values: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface DoubleSettingDefinition : BaseSettingDefinition { + override var type: String /* "double-setting" */ + var default_value: Number + var minimum_value: Number? + get() = definedExternally + set(value) = definedExternally + var maximum_value: Number? + get() = definedExternally + set(value) = definedExternally + var allowed_values: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface StringSettingDefinition : BaseSettingDefinition { + override var type: String /* "string-setting" */ + var default_value: String + var allow_blank: Boolean? + get() = definedExternally + set(value) = definedExternally + var auto_trim: Boolean? + get() = definedExternally + set(value) = definedExternally + var allowed_values: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface Data { + var raw: Any + fun extend(prototypes: Array) +} + +typealias Mods = Record \ No newline at end of file diff --git a/modules/mod2/dukat-custom/util.util.module_typed-factorio.kt b/modules/mod2/dukat-custom/util.util.module_typed-factorio.kt new file mode 100644 index 0000000..843ae01 --- /dev/null +++ b/modules/mod2/dukat-custom/util.util.module_typed-factorio.kt @@ -0,0 +1,111 @@ +@file:JsModule("util") +@file:JsNonModule +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package util + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Position +import ColorTable +import defines.direction +import LuaEntity +import tsstdlib.Record +import LuaTable + +external fun copy(table: T): T + +external fun distance(position1: Position, position2: Position): Number + +external fun positiontostr(position: Position): String + +external fun formattime(ticks: Number): String + +external fun color(hex: String): ColorTable + +external fun premul_color(color: ColorTable): ColorTable + +external fun premul_color(color: Any /* JsTuple */): ColorTable + +external fun mix_color(c1: ColorTable, c2: ColorTable): dynamic /* JsTuple */ + +external fun mix_color(c1: ColorTable, c2: Any /* JsTuple */): dynamic /* JsTuple */ + +external fun mix_color(c1: Any /* JsTuple */, c2: ColorTable): dynamic /* JsTuple */ + +external fun mix_color(c1: Any /* JsTuple */, c2: Any /* JsTuple */): dynamic /* JsTuple */ + +external fun multiply_color(c1: ColorTable, n: Number): dynamic /* JsTuple */ + +external fun multiply_color(c1: Any /* JsTuple */, n: Number): dynamic /* JsTuple */ + +external fun moveposition(position: Position, direction: defines.direction.north, distance: Number): Position + +external fun moveposition(position: Position, direction: defines.direction.east, distance: Number): Position + +external fun moveposition(position: Position, direction: defines.direction.south, distance: Number): Position + +external fun moveposition(position: Position, direction: defines.direction.west, distance: Number): Position + +external fun moveposition(position: Position, direction: direction, distance: Number): Position? + +external fun oppositedirection(direction: direction): direction + +external fun multiplystripes(count: Number, stripes: Array): Array + +external fun by_pixel(x: Number, y: Number): Position + +external fun by_pixel_hr(x: Number, y: Number): Position + +external fun add_shift(a: Any /* JsTuple */, b: Any /* JsTuple */): dynamic /* JsTuple */ + +external fun mul_shift(shift: Any /* JsTuple */, scale: Number?): dynamic /* JsTuple */ + +external fun format_number(amount: Number, append_suffix: Boolean = definedExternally): String + +external fun increment(t: Array, index: Number, v: Number = definedExternally) + +external fun merge(tables: Array): T + +external fun insert_safe(entity: LuaEntity?, item_dict: Record?) + +external fun remove_safe(entity: LuaEntity?, item_dict: Record?) + +external fun split_whitespace(string: String): Array + +external fun clamp(x: Number, lower: Number, upper: Number): Number + +external fun parse_energy(energy: String): Number + +external interface `T$97` { + var probability: Number +} + +external interface `T$98` { + var amount: Number +} + +external interface `T$99` { + var amount_min: Number + var amount_max: Number +} + +external fun product_amount(product: `T$97` /* `T$97` & dynamic */): Number + +external fun empty_sprite(): Any? + +external fun remove_from_list(list: Array, value: T): Boolean + +external fun list_to_map(list: Array): dynamic /* Record | LuaTable */ + +external fun list_to_map(list: T): LuaTable \ No newline at end of file diff --git a/modules/mod2/dukat-custom/util.util.table.module_typed-factorio.kt b/modules/mod2/dukat-custom/util.util.table.module_typed-factorio.kt new file mode 100644 index 0000000..bd20fee --- /dev/null +++ b/modules/mod2/dukat-custom/util.util.table.module_typed-factorio.kt @@ -0,0 +1,21 @@ +@file:JsQualifier("util.table") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package util.table + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun deepcopy(table: T): T + +external fun compare(tb1: T, tb2: T): Boolean \ No newline at end of file diff --git a/modules/mod2/externals/CompilerOptions.module_typescript-to-lua.kt b/modules/mod2/externals/CompilerOptions.module_typescript-to-lua.kt new file mode 100644 index 0000000..a6740d0 --- /dev/null +++ b/modules/mod2/externals/CompilerOptions.module_typescript-to-lua.kt @@ -0,0 +1,75 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.CompilerOptions +import ts.Diagnostic + +typealias OmitIndexSignature = Any + +external interface TransformerImport { + var transform: String + var import: String? + get() = definedExternally + set(value) = definedExternally + var after: Boolean? + get() = definedExternally + set(value) = definedExternally + var afterDeclarations: Boolean? + get() = definedExternally + set(value) = definedExternally + var type: String? /* "program" | "config" | "checker" | "raw" | "compilerOptions" */ + get() = definedExternally + set(value) = definedExternally + @nativeGetter + operator fun get(option: String): Any? + @nativeSetter + operator fun set(option: String, value: Any) +} + +external interface LuaPluginImport { + var name: String + var import: String? + get() = definedExternally + set(value) = definedExternally + @nativeGetter + operator fun get(option: String): Any? + @nativeSetter + operator fun set(option: String, value: Any) +} + +external enum class LuaLibImportKind { + None /* = "none" */, + Always /* = "always" */, + Inline /* = "inline" */, + Require /* = "require" */ +} + +external enum class LuaTarget { + Universal /* = "universal" */, + Lua51 /* = "5.1" */, + Lua52 /* = "5.2" */, + Lua53 /* = "5.3" */, + Lua54 /* = "5.4" */, + LuaJIT /* = "JIT" */ +} + +external enum class BuildMode { + Default /* = "default" */, + Library /* = "library" */ +} + +external var isBundleEnabled: (options: OmitIndexSignature /* OmitIndexSignature & `T$0` */) -> Boolean + +external fun validateOptions(options: OmitIndexSignature /* OmitIndexSignature & `T$0` */): Array \ No newline at end of file diff --git a/modules/mod2/externals/LuaAST.module_typescript-to-lua.kt b/modules/mod2/externals/LuaAST.module_typescript-to-lua.kt new file mode 100644 index 0000000..079e37f --- /dev/null +++ b/modules/mod2/externals/LuaAST.module_typescript-to-lua.kt @@ -0,0 +1,485 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import tsstdlib.Set + +external enum class SyntaxKind { + File /* = 0 */, + Block /* = 1 */, + DoStatement /* = 2 */, + VariableDeclarationStatement /* = 3 */, + AssignmentStatement /* = 4 */, + IfStatement /* = 5 */, + WhileStatement /* = 6 */, + RepeatStatement /* = 7 */, + ForStatement /* = 8 */, + ForInStatement /* = 9 */, + GotoStatement /* = 10 */, + LabelStatement /* = 11 */, + ReturnStatement /* = 12 */, + BreakStatement /* = 13 */, + ExpressionStatement /* = 14 */, + StringLiteral /* = 15 */, + NumericLiteral /* = 16 */, + NilKeyword /* = 17 */, + DotsKeyword /* = 18 */, + TrueKeyword /* = 19 */, + FalseKeyword /* = 20 */, + FunctionExpression /* = 21 */, + TableFieldExpression /* = 22 */, + TableExpression /* = 23 */, + UnaryExpression /* = 24 */, + BinaryExpression /* = 25 */, + CallExpression /* = 26 */, + MethodCallExpression /* = 27 */, + Identifier /* = 28 */, + TableIndexExpression /* = 29 */, + AdditionOperator /* = 30 */, + SubtractionOperator /* = 31 */, + MultiplicationOperator /* = 32 */, + DivisionOperator /* = 33 */, + FloorDivisionOperator /* = 34 */, + ModuloOperator /* = 35 */, + PowerOperator /* = 36 */, + NegationOperator /* = 37 */, + ConcatOperator /* = 38 */, + LengthOperator /* = 39 */, + EqualityOperator /* = 40 */, + InequalityOperator /* = 41 */, + LessThanOperator /* = 42 */, + LessEqualOperator /* = 43 */, + GreaterThanOperator /* = 44 */, + GreaterEqualOperator /* = 45 */, + AndOperator /* = 46 */, + OrOperator /* = 47 */, + NotOperator /* = 48 */, + BitwiseAndOperator /* = 49 */, + BitwiseOrOperator /* = 50 */, + BitwiseExclusiveOrOperator /* = 51 */, + BitwiseRightShiftOperator /* = 52 */, + BitwiseLeftShiftOperator /* = 53 */, + BitwiseNotOperator /* = 54 */ +} + +typealias UnaryBitwiseOperator = SyntaxKind.BitwiseNotOperator + +external interface TextRange { + var line: Number? + get() = definedExternally + set(value) = definedExternally + var column: Number? + get() = definedExternally + set(value) = definedExternally +} + +external interface Node : TextRange { + var kind: SyntaxKind +} + +external fun createNode(kind: SyntaxKind, tsOriginal: ts.Node = definedExternally): Node + +external fun cloneNode(node: T): T + +external fun setNodePosition(node: T, position: TextRange): T + +external fun setNodeOriginal(node: T, tsOriginal: ts.Node): T + +external fun setNodeOriginal(node: T?, tsOriginal: ts.Node): T? + +external fun getOriginalPos(node: Node): TextRange + +external interface File : Node { + var statements: Array + var luaLibFeatures: Set + var trivia: String +} + +external fun isFile(node: Node): Boolean + +external fun createFile(statements: Array, luaLibFeatures: Set, trivia: String, tsOriginal: ts.Node = definedExternally): File + +external interface Block : Node { + var statements: Array +} + +external fun isBlock(node: Node): Boolean + +external fun createBlock(statements: Array, tsOriginal: ts.Node = definedExternally): Block + +external interface Statement : Node { + var _statementBrand: Any + var leadingComments: Array */>? + get() = definedExternally + set(value) = definedExternally + var trailingComments: Array */>? + get() = definedExternally + set(value) = definedExternally +} + +external interface DoStatement : Statement { + var statements: Array +} + +external fun isDoStatement(node: Node): Boolean + +external fun createDoStatement(statements: Array, tsOriginal: ts.Node = definedExternally): DoStatement + +external interface VariableDeclarationStatement : Statement { + var left: Array + var right: Array? + get() = definedExternally + set(value) = definedExternally +} + +external fun isVariableDeclarationStatement(node: Node): Boolean + +external fun createVariableDeclarationStatement(left: Identifier, right: Expression = definedExternally, tsOriginal: ts.Node = definedExternally): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Identifier): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Identifier, right: Expression = definedExternally): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Identifier, right: Array = definedExternally, tsOriginal: ts.Node = definedExternally): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Identifier, right: Array = definedExternally): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Array, right: Expression = definedExternally, tsOriginal: ts.Node = definedExternally): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Array): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Array, right: Expression = definedExternally): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Array, right: Array = definedExternally, tsOriginal: ts.Node = definedExternally): VariableDeclarationStatement + +external fun createVariableDeclarationStatement(left: Array, right: Array = definedExternally): VariableDeclarationStatement + +external interface AssignmentStatement : Statement { + var left: Array + var right: Array +} + +external fun isAssignmentStatement(node: Node): Boolean + +external fun createAssignmentStatement(left: Identifier, right: Expression = definedExternally, tsOriginal: ts.Node = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: Identifier): AssignmentStatement + +external fun createAssignmentStatement(left: Identifier, right: Expression = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: Identifier, right: Array = definedExternally, tsOriginal: ts.Node = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: Identifier, right: Array = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: TableIndexExpression, right: Expression = definedExternally, tsOriginal: ts.Node = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: TableIndexExpression): AssignmentStatement + +external fun createAssignmentStatement(left: TableIndexExpression, right: Expression = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: TableIndexExpression, right: Array = definedExternally, tsOriginal: ts.Node = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: TableIndexExpression, right: Array = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: Array, right: Expression = definedExternally, tsOriginal: ts.Node = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: Array): AssignmentStatement + +external fun createAssignmentStatement(left: Array, right: Expression = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: Array, right: Array = definedExternally, tsOriginal: ts.Node = definedExternally): AssignmentStatement + +external fun createAssignmentStatement(left: Array, right: Array = definedExternally): AssignmentStatement + +external interface IfStatement : Statement { + var condition: Expression + var ifBlock: Block + var elseBlock: dynamic /* Block? | IfStatement? */ + get() = definedExternally + set(value) = definedExternally +} + +external fun isIfStatement(node: Node): Boolean + +external fun createIfStatement(condition: Expression, ifBlock: Block, elseBlock: Block = definedExternally, tsOriginal: ts.Node = definedExternally): IfStatement + +external fun createIfStatement(condition: Expression, ifBlock: Block): IfStatement + +external fun createIfStatement(condition: Expression, ifBlock: Block, elseBlock: Block = definedExternally): IfStatement + +external fun createIfStatement(condition: Expression, ifBlock: Block, elseBlock: IfStatement = definedExternally, tsOriginal: ts.Node = definedExternally): IfStatement + +external fun createIfStatement(condition: Expression, ifBlock: Block, elseBlock: IfStatement = definedExternally): IfStatement + +external interface IterationStatement : Statement { + var body: Block +} + +external fun isIterationStatement(node: Node): Boolean + +external interface WhileStatement : IterationStatement { + var condition: Expression +} + +external fun isWhileStatement(node: Node): Boolean + +external fun createWhileStatement(body: Block, condition: Expression, tsOriginal: ts.Node = definedExternally): WhileStatement + +external interface RepeatStatement : IterationStatement { + var condition: Expression +} + +external fun isRepeatStatement(node: Node): Boolean + +external fun createRepeatStatement(body: Block, condition: Expression, tsOriginal: ts.Node = definedExternally): RepeatStatement + +external interface ForStatement : IterationStatement { + var controlVariable: Identifier + var controlVariableInitializer: Expression + var limitExpression: Expression + var stepExpression: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external fun isForStatement(node: Node): Boolean + +external fun createForStatement(body: Block, controlVariable: Identifier, controlVariableInitializer: Expression, limitExpression: Expression, stepExpression: Expression = definedExternally, tsOriginal: ts.Node = definedExternally): ForStatement + +external interface ForInStatement : IterationStatement { + var names: Array + var expressions: Array +} + +external fun isForInStatement(node: Node): Boolean + +external fun createForInStatement(body: Block, names: Array, expressions: Array, tsOriginal: ts.Node = definedExternally): ForInStatement + +external interface GotoStatement : Statement { + var label: String +} + +external fun isGotoStatement(node: Node): Boolean + +external fun createGotoStatement(label: String, tsOriginal: ts.Node = definedExternally): GotoStatement + +external interface LabelStatement : Statement { + var name: String +} + +external fun isLabelStatement(node: Node): Boolean + +external fun createLabelStatement(name: String, tsOriginal: ts.Node = definedExternally): LabelStatement + +external interface ReturnStatement : Statement { + var expressions: Array +} + +external fun isReturnStatement(node: Node): Boolean + +external fun createReturnStatement(expressions: Array, tsOriginal: ts.Node = definedExternally): ReturnStatement + +external interface BreakStatement : Statement + +external fun isBreakStatement(node: Node): Boolean + +external fun createBreakStatement(tsOriginal: ts.Node = definedExternally): BreakStatement + +external interface ExpressionStatement : Statement { + var expression: Expression +} + +external fun isExpressionStatement(node: Node): Boolean + +external fun createExpressionStatement(expressions: Expression, tsOriginal: ts.Node = definedExternally): ExpressionStatement + +external interface Expression : Node { + var _expressionBrand: Any +} + +external interface NilLiteral : Expression + +external fun isNilLiteral(node: Node): Boolean + +external fun createNilLiteral(tsOriginal: ts.Node = definedExternally): NilLiteral + +external interface BooleanLiteral : Expression { + override var kind: dynamic /* SyntaxKind.TrueKeyword | SyntaxKind.FalseKeyword */ + get() = definedExternally + set(value) = definedExternally +} + +external fun isBooleanLiteral(node: Node): Boolean + +external fun createBooleanLiteral(value: Boolean, tsOriginal: ts.Node = definedExternally): BooleanLiteral + +external interface DotsLiteral : Expression + +external fun isDotsLiteral(node: Node): Boolean + +external fun createDotsLiteral(tsOriginal: ts.Node = definedExternally): DotsLiteral + +external interface NumericLiteral : Expression { + var value: Number +} + +external fun isNumericLiteral(node: Node): Boolean + +external fun createNumericLiteral(value: Number, tsOriginal: ts.Node = definedExternally): NumericLiteral + +external interface StringLiteral : Expression { + var value: String +} + +external fun isStringLiteral(node: Node): Boolean + +external fun createStringLiteral(value: String, tsOriginal: ts.Node = definedExternally): StringLiteral + +external enum class FunctionExpressionFlags { + None /* = 1 */, + Inline /* = 2 */, + Declaration /* = 4 */ +} + +external interface FunctionExpression : Expression { + var params: Array? + get() = definedExternally + set(value) = definedExternally + var dots: DotsLiteral? + get() = definedExternally + set(value) = definedExternally + var body: Block + var flags: FunctionExpressionFlags +} + +external fun isFunctionExpression(node: Node): Boolean + +external fun createFunctionExpression(body: Block, params: Array = definedExternally, dots: DotsLiteral = definedExternally, flags: FunctionExpressionFlags = definedExternally, tsOriginal: ts.Node = definedExternally): FunctionExpression + +external interface TableFieldExpression : Expression { + var value: Expression + var key: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external fun isTableFieldExpression(node: Node): Boolean + +external fun createTableFieldExpression(value: Expression, key: Expression = definedExternally, tsOriginal: ts.Node = definedExternally): TableFieldExpression + +external interface TableExpression : Expression { + var fields: Array +} + +external fun isTableExpression(node: Node): Boolean + +external fun createTableExpression(fields: Array = definedExternally, tsOriginal: ts.Node = definedExternally): TableExpression + +external interface UnaryExpression : Expression { + var operand: Expression + var operator: dynamic /* SyntaxKind.NegationOperator | SyntaxKind.LengthOperator | SyntaxKind.NotOperator | UnaryBitwiseOperator */ + get() = definedExternally + set(value) = definedExternally +} + +external fun isUnaryExpression(node: Node): Boolean + +external fun createUnaryExpression(operand: Expression, operator: SyntaxKind.NegationOperator, tsOriginal: ts.Node = definedExternally): UnaryExpression + +external fun createUnaryExpression(operand: Expression, operator: SyntaxKind.NegationOperator): UnaryExpression + +external fun createUnaryExpression(operand: Expression, operator: SyntaxKind.LengthOperator, tsOriginal: ts.Node = definedExternally): UnaryExpression + +external fun createUnaryExpression(operand: Expression, operator: SyntaxKind.LengthOperator): UnaryExpression + +external fun createUnaryExpression(operand: Expression, operator: SyntaxKind.NotOperator, tsOriginal: ts.Node = definedExternally): UnaryExpression + +external fun createUnaryExpression(operand: Expression, operator: SyntaxKind.NotOperator): UnaryExpression + +external fun createUnaryExpression(operand: Expression, operator: UnaryBitwiseOperator, tsOriginal: ts.Node = definedExternally): UnaryExpression + +external fun createUnaryExpression(operand: Expression, operator: UnaryBitwiseOperator): UnaryExpression + +external interface BinaryExpression : Expression { + var operator: dynamic /* SyntaxKind.AdditionOperator | SyntaxKind.SubtractionOperator | SyntaxKind.MultiplicationOperator | SyntaxKind.DivisionOperator | SyntaxKind.FloorDivisionOperator | SyntaxKind.ModuloOperator | SyntaxKind.PowerOperator | SyntaxKind.ConcatOperator | SyntaxKind.EqualityOperator | SyntaxKind.InequalityOperator | SyntaxKind.LessThanOperator | SyntaxKind.LessEqualOperator | SyntaxKind.GreaterThanOperator | SyntaxKind.GreaterEqualOperator | SyntaxKind.AndOperator | SyntaxKind.OrOperator | SyntaxKind.BitwiseAndOperator | SyntaxKind.BitwiseOrOperator | SyntaxKind.BitwiseExclusiveOrOperator | SyntaxKind.BitwiseRightShiftOperator | SyntaxKind.BitwiseLeftShiftOperator */ + get() = definedExternally + set(value) = definedExternally + var left: Expression + var right: Expression +} + +external fun isBinaryExpression(node: Node): Boolean + +external fun createBinaryExpression(left: Expression, right: Expression, operator: Any /* SyntaxKind.AdditionOperator | SyntaxKind.SubtractionOperator | SyntaxKind.MultiplicationOperator | SyntaxKind.DivisionOperator | SyntaxKind.FloorDivisionOperator | SyntaxKind.ModuloOperator | SyntaxKind.PowerOperator | SyntaxKind.ConcatOperator | SyntaxKind.EqualityOperator | SyntaxKind.InequalityOperator | SyntaxKind.LessThanOperator | SyntaxKind.LessEqualOperator | SyntaxKind.GreaterThanOperator | SyntaxKind.GreaterEqualOperator | SyntaxKind.AndOperator | SyntaxKind.OrOperator | SyntaxKind.BitwiseAndOperator | SyntaxKind.BitwiseOrOperator | SyntaxKind.BitwiseExclusiveOrOperator | SyntaxKind.BitwiseRightShiftOperator | SyntaxKind.BitwiseLeftShiftOperator */, tsOriginal: ts.Node = definedExternally): BinaryExpression + +external interface CallExpression : Expression { + var expression: Expression + var params: Array +} + +external fun isCallExpression(node: Node): Boolean + +external fun createCallExpression(expression: Expression, params: Array, tsOriginal: ts.Node = definedExternally): CallExpression + +external interface MethodCallExpression : Expression { + var prefixExpression: Expression + var name: Identifier + var params: Array +} + +external fun isMethodCallExpression(node: Node): Boolean + +external fun createMethodCallExpression(prefixExpression: Expression, name: Identifier, params: Array, tsOriginal: ts.Node = definedExternally): MethodCallExpression + +external interface Identifier : Expression { + var exportable: Boolean + var text: String + var originalName: String? + get() = definedExternally + set(value) = definedExternally + var symbolId: Number? /* Number? & `T$14`? */ + get() = definedExternally + set(value) = definedExternally +} + +external fun isIdentifier(node: Node): Boolean + +external fun createIdentifier(text: String, tsOriginal: ts.Node = definedExternally, symbolId: Number /* Number & `T$14` */ = definedExternally, originalName: String = definedExternally): Identifier + +external fun cloneIdentifier(identifier: Identifier, tsOriginal: ts.Node = definedExternally): Identifier + +external fun createAnonymousIdentifier(tsOriginal: ts.Node = definedExternally): Identifier + +external interface TableIndexExpression : Expression { + var table: Expression + var index: Expression +} + +external fun isTableIndexExpression(node: Node): Boolean + +external fun createTableIndexExpression(table: Expression, index: Expression, tsOriginal: ts.Node = definedExternally): TableIndexExpression + +external fun isAssignmentLeftHandSideExpression(node: Node): Boolean + +external fun isFunctionDefinition(statement: VariableDeclarationStatement): Boolean + +external fun isFunctionDefinition(statement: AssignmentStatement): Boolean + +external interface `T$17` { + var statements: dynamic /* JsTuple */ + get() = definedExternally + set(value) = definedExternally +} + +external fun isInlineFunctionExpression(expression: FunctionExpression): Boolean \ No newline at end of file diff --git a/modules/mod2/externals/LuaLib.module_typescript-to-lua.kt b/modules/mod2/externals/LuaLib.module_typescript-to-lua.kt new file mode 100644 index 0000000..f00c242 --- /dev/null +++ b/modules/mod2/externals/LuaLib.module_typescript-to-lua.kt @@ -0,0 +1,111 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external enum class LuaLibFeature { + ArrayConcat /* = "ArrayConcat" */, + ArrayEntries /* = "ArrayEntries" */, + ArrayEvery /* = "ArrayEvery" */, + ArrayFilter /* = "ArrayFilter" */, + ArrayForEach /* = "ArrayForEach" */, + ArrayFind /* = "ArrayFind" */, + ArrayFindIndex /* = "ArrayFindIndex" */, + ArrayIncludes /* = "ArrayIncludes" */, + ArrayIndexOf /* = "ArrayIndexOf" */, + ArrayIsArray /* = "ArrayIsArray" */, + ArrayJoin /* = "ArrayJoin" */, + ArrayMap /* = "ArrayMap" */, + ArrayPush /* = "ArrayPush" */, + ArrayReduce /* = "ArrayReduce" */, + ArrayReduceRight /* = "ArrayReduceRight" */, + ArrayReverse /* = "ArrayReverse" */, + ArrayShift /* = "ArrayShift" */, + ArrayUnshift /* = "ArrayUnshift" */, + ArraySort /* = "ArraySort" */, + ArraySlice /* = "ArraySlice" */, + ArraySome /* = "ArraySome" */, + ArraySplice /* = "ArraySplice" */, + ArrayToObject /* = "ArrayToObject" */, + ArrayFlat /* = "ArrayFlat" */, + ArrayFlatMap /* = "ArrayFlatMap" */, + ArraySetLength /* = "ArraySetLength" */, + Await /* = "Await" */, + Class /* = "Class" */, + ClassExtends /* = "ClassExtends" */, + CloneDescriptor /* = "CloneDescriptor" */, + Decorate /* = "Decorate" */, + DecorateParam /* = "DecorateParam" */, + Delete /* = "Delete" */, + DelegatedYield /* = "DelegatedYield" */, + Error /* = "Error" */, + FunctionBind /* = "FunctionBind" */, + Generator /* = "Generator" */, + InstanceOf /* = "InstanceOf" */, + InstanceOfObject /* = "InstanceOfObject" */, + Iterator /* = "Iterator" */, + Map /* = "Map" */, + MathAtan2 /* = "MathAtan2" */, + New /* = "New" */, + Number /* = "Number" */, + NumberIsFinite /* = "NumberIsFinite" */, + NumberIsNaN /* = "NumberIsNaN" */, + NumberToString /* = "NumberToString" */, + ObjectAssign /* = "ObjectAssign" */, + ObjectDefineProperty /* = "ObjectDefineProperty" */, + ObjectEntries /* = "ObjectEntries" */, + ObjectFromEntries /* = "ObjectFromEntries" */, + ObjectGetOwnPropertyDescriptor /* = "ObjectGetOwnPropertyDescriptor" */, + ObjectGetOwnPropertyDescriptors /* = "ObjectGetOwnPropertyDescriptors" */, + ObjectKeys /* = "ObjectKeys" */, + ObjectRest /* = "ObjectRest" */, + ObjectValues /* = "ObjectValues" */, + OptionalChainAccess /* = "OptionalChainAccess" */, + OptionalFunctionCall /* = "OptionalFunctionCall" */, + OptionalMethodCall /* = "OptionalMethodCall" */, + ParseFloat /* = "ParseFloat" */, + ParseInt /* = "ParseInt" */, + Promise /* = "Promise" */, + PromiseAll /* = "PromiseAll" */, + PromiseAllSettled /* = "PromiseAllSettled" */, + PromiseAny /* = "PromiseAny" */, + PromiseRace /* = "PromiseRace" */, + Set /* = "Set" */, + SetDescriptor /* = "SetDescriptor" */, + WeakMap /* = "WeakMap" */, + WeakSet /* = "WeakSet" */, + SourceMapTraceBack /* = "SourceMapTraceBack" */, + Spread /* = "Spread" */, + StringAccess /* = "StringAccess" */, + StringCharAt /* = "StringCharAt" */, + StringCharCodeAt /* = "StringCharCodeAt" */, + StringConcat /* = "StringConcat" */, + StringEndsWith /* = "StringEndsWith" */, + StringIncludes /* = "StringIncludes" */, + StringPadEnd /* = "StringPadEnd" */, + StringPadStart /* = "StringPadStart" */, + StringReplace /* = "StringReplace" */, + StringSlice /* = "StringSlice" */, + StringSplit /* = "StringSplit" */, + StringStartsWith /* = "StringStartsWith" */, + StringSubstr /* = "StringSubstr" */, + StringSubstring /* = "StringSubstring" */, + StringTrim /* = "StringTrim" */, + StringTrimEnd /* = "StringTrimEnd" */, + StringTrimStart /* = "StringTrimStart" */, + Symbol /* = "Symbol" */, + SymbolRegistry /* = "SymbolRegistry" */, + TypeOf /* = "TypeOf" */, + Unpack /* = "Unpack" */ +} \ No newline at end of file diff --git a/modules/mod2/externals/LuaPrinter.module_typescript-to-lua.kt b/modules/mod2/externals/LuaPrinter.module_typescript-to-lua.kt new file mode 100644 index 0000000..6428653 --- /dev/null +++ b/modules/mod2/externals/LuaPrinter.module_typescript-to-lua.kt @@ -0,0 +1,101 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.Program + +external var escapeString: (value: String) -> String + +external var tstlHeader: Any + +typealias Printer = (program: Program, emitHost: EmitHost, fileName: String, file: File) -> PrintResult + +external interface PrintResult { + var code: String + var sourceMap: String + var sourceMapNode: SourceNode +} + +external fun createPrinter(printers: Array): Printer + +external open class LuaPrinter(emitHost: EmitHost, program: Program, fileName: String) { + open var emitHost: Any + open var currentIndent: Any + open var sourceFile: Any + open var options: Any + open fun print(file: File): PrintResult + open var printInlineSourceMap: Any + open var printStackTraceOverride: Any + open var printFile: Any + open fun pushIndent() + open fun popIndent() + open fun indent(input: String = definedExternally): dynamic /* String | SourceNode */ + open fun indent(): dynamic /* String | SourceNode */ + open fun indent(input: SourceNode = definedExternally): dynamic /* String | SourceNode */ + open fun createSourceNode(node: Node, chunks: String, name: String = definedExternally): SourceNode + open fun createSourceNode(node: Node, chunks: String): SourceNode + open fun createSourceNode(node: Node, chunks: SourceNode, name: String = definedExternally): SourceNode + open fun createSourceNode(node: Node, chunks: SourceNode): SourceNode + open fun createSourceNode(node: Node, chunks: Array, name: String = definedExternally): SourceNode + open fun createSourceNode(node: Node, chunks: Array): SourceNode + open fun concatNodes(vararg chunks: Any /* String | SourceNode */): SourceNode + open fun printBlock(block: Block): SourceNode + open var statementMayRequireSemiColon: Any + open var nodeStartsWithParenthesis: Any + open fun printStatementArray(statements: Array): Array + open fun printStatement(statement: Statement): SourceNode + open fun printComment(comment: String): dynamic /* String | SourceNode */ + open fun printComment(comment: Array): dynamic /* String | SourceNode */ + open fun printStatementExcludingComments(statement: Statement): SourceNode + open fun printDoStatement(statement: DoStatement): SourceNode + open fun printVariableDeclarationStatement(statement: VariableDeclarationStatement): SourceNode + open fun printVariableAssignmentStatement(statement: AssignmentStatement): SourceNode + open fun printIfStatement(statement: IfStatement, isElseIf: Boolean = definedExternally): SourceNode + open fun printWhileStatement(statement: WhileStatement): SourceNode + open fun printRepeatStatement(statement: RepeatStatement): SourceNode + open fun printForStatement(statement: ForStatement): SourceNode + open fun printForInStatement(statement: ForInStatement): SourceNode + open fun printGotoStatement(statement: GotoStatement): SourceNode + open fun printLabelStatement(statement: LabelStatement): SourceNode + open fun printReturnStatement(statement: ReturnStatement): SourceNode + open fun printBreakStatement(statement: BreakStatement): SourceNode + open fun printExpressionStatement(statement: ExpressionStatement): SourceNode + open fun printExpression(expression: Expression): SourceNode + open fun printStringLiteral(expression: StringLiteral): SourceNode + open fun printNumericLiteral(expression: NumericLiteral): SourceNode + open fun printNilLiteral(expression: NilLiteral): SourceNode + open fun printDotsLiteral(expression: DotsLiteral): SourceNode + open fun printBooleanLiteral(expression: BooleanLiteral): SourceNode + open var printFunctionParameters: Any + open fun printFunctionExpression(expression: FunctionExpression): SourceNode + open fun printFunctionDefinition(statement: Any /* VariableDeclarationStatement | AssignmentStatement */): SourceNode + open fun printTableFieldExpression(expression: TableFieldExpression): SourceNode + open fun printTableExpression(expression: TableExpression): SourceNode + open fun printUnaryExpression(expression: UnaryExpression): SourceNode + open fun printBinaryExpression(expression: BinaryExpression): SourceNode + open var printExpressionInParenthesesIfNeeded: Any + open var needsParenthesis: Any + open fun printCallExpression(expression: CallExpression): SourceNode + open fun printMethodCallExpression(expression: MethodCallExpression): SourceNode + open fun printIdentifier(expression: Identifier): SourceNode + open fun printTableIndexExpression(expression: TableIndexExpression): SourceNode + open fun printOperator(kind: Any /* SyntaxKind.NegationOperator | SyntaxKind.LengthOperator | SyntaxKind.NotOperator | UnaryBitwiseOperator | SyntaxKind.AdditionOperator | SyntaxKind.SubtractionOperator | SyntaxKind.MultiplicationOperator | SyntaxKind.DivisionOperator | SyntaxKind.FloorDivisionOperator | SyntaxKind.ModuloOperator | SyntaxKind.PowerOperator | SyntaxKind.ConcatOperator | SyntaxKind.EqualityOperator | SyntaxKind.InequalityOperator | SyntaxKind.LessThanOperator | SyntaxKind.LessEqualOperator | SyntaxKind.GreaterThanOperator | SyntaxKind.GreaterEqualOperator | SyntaxKind.AndOperator | SyntaxKind.OrOperator | SyntaxKind.BitwiseAndOperator | SyntaxKind.BitwiseOrOperator | SyntaxKind.BitwiseExclusiveOrOperator | SyntaxKind.BitwiseRightShiftOperator | SyntaxKind.BitwiseLeftShiftOperator */): SourceNode + open fun joinChunksWithComma(chunks: Array): Array + open fun printExpressionList(expressions: Array): Array + open var buildSourceMap: Any + + companion object { + var operatorMap: Any + } +} \ No newline at end of file diff --git a/modules/mod2/externals/context.module_typescript-to-lua.kt b/modules/mod2/externals/context.module_typescript-to-lua.kt new file mode 100644 index 0000000..3c6d078 --- /dev/null +++ b/modules/mod2/externals/context.module_typescript-to-lua.kt @@ -0,0 +1,80 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.GetAccessorDeclaration +import ts.SetAccessorDeclaration +import ts.Node +import ts.ImportEqualsDeclaration +import ts.Expression +import ts.SourceFile +import ts.CancellationToken +import ts.TypeChecker +import ts.Program +import ts.Diagnostic +import ts.CompilerOptions +import Node as _Node +import Expression as _Expression +import ts.QualifiedName +import ts.ExternalModuleReference + +external interface AllAccessorDeclarations { + var firstAccessor: dynamic /* GetAccessorDeclaration | SetAccessorDeclaration */ + get() = definedExternally + set(value) = definedExternally + var secondAccessor: dynamic /* GetAccessorDeclaration? | SetAccessorDeclaration? */ + get() = definedExternally + set(value) = definedExternally + var getAccessor: GetAccessorDeclaration? + var setAccessor: SetAccessorDeclaration? +} + +external interface EmitResolver { + fun isValueAliasDeclaration(node: Node): Boolean + fun isReferencedAliasDeclaration(node: Node, checkChildren: Boolean = definedExternally): Boolean + fun isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): Boolean + fun moduleExportsSomeValue(moduleReferenceExpression: Expression): Boolean + fun getAllAccessorDeclarations(declaration: GetAccessorDeclaration): AllAccessorDeclarations + fun getAllAccessorDeclarations(declaration: SetAccessorDeclaration): AllAccessorDeclarations +} + +external interface DiagnosticsProducingTypeChecker : TypeChecker { + fun getEmitResolver(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): EmitResolver +} + +external open class TransformationContext(program: Program, sourceFile: SourceFile, visitorMap: VisitorMap) { + open var program: Program + open var sourceFile: SourceFile + open var visitorMap: Any + open var diagnostics: Array + open var checker: DiagnosticsProducingTypeChecker + open var resolver: EmitResolver + open var options: OmitIndexSignature /* OmitIndexSignature & `T$0` */ + open var luaTarget: LuaTarget + open var isModule: Boolean + open var isStrict: Boolean + open var currentNodeVisitors: Any + open fun transformNode(node: Node): Array<_Node> + open fun superTransformNode(node: Node): Array<_Node> + open fun transformExpression(node: Expression): _Expression + open fun transformExpression(node: QualifiedName): _Expression + open fun transformExpression(node: ExternalModuleReference): _Expression + open fun superTransformExpression(node: Expression): _Expression + open fun superTransformExpression(node: QualifiedName): _Expression + open fun superTransformExpression(node: ExternalModuleReference): _Expression + open fun transformStatements(node: StatementLikeNode): Array + open fun transformStatements(node: Array): Array + open fun superTransformStatements(node: StatementLikeNode): Array + open fun superTransformStatements(node: Array): Array +} \ No newline at end of file diff --git a/modules/mod2/externals/index.module_typescript-to-lua.kt b/modules/mod2/externals/index.module_typescript-to-lua.kt new file mode 100644 index 0000000..0de0447 --- /dev/null +++ b/modules/mod2/externals/index.module_typescript-to-lua.kt @@ -0,0 +1,39 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.CompilerOptions +import ts.WriteFileCallback +import ts.Diagnostic +import tsstdlib.Record + +external fun transpileFiles(rootNames: Array, options: OmitIndexSignature /* OmitIndexSignature & `T$0` */ = definedExternally, writeFile: WriteFileCallback = definedExternally): EmitResult + +external fun transpileProject(configFileName: String, optionsToExtend: OmitIndexSignature /* OmitIndexSignature & `T$0` */ = definedExternally, writeFile: WriteFileCallback = definedExternally): EmitResult + +external interface TranspileVirtualProjectResult { + var diagnostics: Array + var transpiledFiles: Array +} + +external fun transpileVirtualProject(files: Record, options: OmitIndexSignature /* OmitIndexSignature & `T$0` */ = definedExternally): TranspileVirtualProjectResult + +external interface TranspileStringResult { + var diagnostics: Array + var file: TranspiledFile? + get() = definedExternally + set(value) = definedExternally +} + +external fun transpileString(main: String, options: OmitIndexSignature /* OmitIndexSignature & `T$0` */ = definedExternally): TranspileStringResult \ No newline at end of file diff --git a/modules/mod2/externals/lib.es2015.collection.kt b/modules/mod2/externals/lib.es2015.collection.kt new file mode 100644 index 0000000..8d138d8 --- /dev/null +++ b/modules/mod2/externals/lib.es2015.collection.kt @@ -0,0 +1,49 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface Map { + fun entries(): IterableIterator */> + fun keys(): IterableIterator + fun values(): IterableIterator + fun clear() + fun delete(key: K): Boolean + fun forEach(callbackfn: (value: V, key: K, map: Map) -> Unit, thisArg: Any = definedExternally) + fun get(key: K): V? + fun has(key: K): Boolean + fun set(key: K, value: V): Map /* this */ + var size: Number +} + +external interface MapConstructor { + var prototype: Map +} + +external interface Set { + fun entries(): IterableIterator */> + fun keys(): IterableIterator + fun values(): IterableIterator + fun add(value: T): Set /* this */ + fun clear() + fun delete(value: T): Boolean + fun forEach(callbackfn: (value: T, value2: T, set: Set) -> Unit, thisArg: Any = definedExternally) + fun has(value: T): Boolean + var size: Number +} + +external interface SetConstructor { + var prototype: Set +} \ No newline at end of file diff --git a/modules/mod2/externals/lib.es2015.iterable.kt b/modules/mod2/externals/lib.es2015.iterable.kt new file mode 100644 index 0000000..57fb640 --- /dev/null +++ b/modules/mod2/externals/lib.es2015.iterable.kt @@ -0,0 +1,54 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface IteratorYieldResult { + var done: Boolean? + get() = definedExternally + set(value) = definedExternally + var value: TYield +} + +external interface IteratorReturnResult { + var done: Boolean + var value: TReturn +} + +external interface Iterator { + fun next(vararg args: Any /* JsTuple<> | JsTuple */): dynamic /* IteratorYieldResult | IteratorReturnResult */ + val `return`: ((value: TReturn) -> dynamic)? + val `throw`: ((e: Any) -> dynamic)? +} + +typealias Iterator__1 = Iterator + +external interface Iterable + +external interface IterableIterator : Iterator__1 + +external interface PromiseConstructor { + var prototype: Promise + fun all(values: Any /* JsTuple | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple */): Promise | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple | JsTuple */> + fun all(values: Array */>): Promise> + fun race(values: Array): Promise + fun reject(reason: Any = definedExternally): Promise + fun resolve(value: T): Promise + fun resolve(value: PromiseLike): Promise + fun resolve(): Promise + fun all(values: Iterable */>): Promise> + fun race(values: Iterable): Promise + fun race(values: Iterable */>): Promise +} \ No newline at end of file diff --git a/modules/mod2/externals/lib.es5.Intl.module_dukat.kt b/modules/mod2/externals/lib.es5.Intl.module_dukat.kt new file mode 100644 index 0000000..62cbcc7 --- /dev/null +++ b/modules/mod2/externals/lib.es5.Intl.module_dukat.kt @@ -0,0 +1,220 @@ +@file:JsQualifier("tsstdlib.Intl") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib.Intl + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface CollatorOptions { + var usage: String? + get() = definedExternally + set(value) = definedExternally + var localeMatcher: String? + get() = definedExternally + set(value) = definedExternally + var numeric: Boolean? + get() = definedExternally + set(value) = definedExternally + var caseFirst: String? + get() = definedExternally + set(value) = definedExternally + var sensitivity: String? + get() = definedExternally + set(value) = definedExternally + var ignorePunctuation: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ResolvedCollatorOptions { + var locale: String + var usage: String + var sensitivity: String + var ignorePunctuation: Boolean + var collation: String + var caseFirst: String + var numeric: Boolean +} + +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +external interface Collator { + fun compare(x: String, y: String): Number + fun resolvedOptions(): ResolvedCollatorOptions + + companion object { + @nativeInvoke + operator fun invoke(locales: Any /* String | Array */ = definedExternally, options: CollatorOptions = definedExternally): Collator + fun supportedLocalesOf(locales: Any /* String | Array */, options: CollatorOptions = definedExternally): Array + } +} + +external interface NumberFormatOptions { + var localeMatcher: String? + get() = definedExternally + set(value) = definedExternally + var style: String? + get() = definedExternally + set(value) = definedExternally + var currency: String? + get() = definedExternally + set(value) = definedExternally + var currencyDisplay: String? + get() = definedExternally + set(value) = definedExternally + var useGrouping: Boolean? + get() = definedExternally + set(value) = definedExternally + var minimumIntegerDigits: Number? + get() = definedExternally + set(value) = definedExternally + var minimumFractionDigits: Number? + get() = definedExternally + set(value) = definedExternally + var maximumFractionDigits: Number? + get() = definedExternally + set(value) = definedExternally + var minimumSignificantDigits: Number? + get() = definedExternally + set(value) = definedExternally + var maximumSignificantDigits: Number? + get() = definedExternally + set(value) = definedExternally +} + +external interface ResolvedNumberFormatOptions { + var locale: String + var numberingSystem: String + var style: String + var currency: String? + get() = definedExternally + set(value) = definedExternally + var currencyDisplay: String? + get() = definedExternally + set(value) = definedExternally + var minimumIntegerDigits: Number + var minimumFractionDigits: Number + var maximumFractionDigits: Number + var minimumSignificantDigits: Number? + get() = definedExternally + set(value) = definedExternally + var maximumSignificantDigits: Number? + get() = definedExternally + set(value) = definedExternally + var useGrouping: Boolean +} + +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +external interface NumberFormat { + fun format(value: Number): String + fun resolvedOptions(): ResolvedNumberFormatOptions + + companion object { + @nativeInvoke + operator fun invoke(locales: Any /* String | Array */ = definedExternally, options: NumberFormatOptions = definedExternally): NumberFormat + fun supportedLocalesOf(locales: Any /* String | Array */, options: NumberFormatOptions = definedExternally): Array + } +} + +external interface DateTimeFormatOptions { + var localeMatcher: String? + get() = definedExternally + set(value) = definedExternally + var weekday: String? + get() = definedExternally + set(value) = definedExternally + var era: String? + get() = definedExternally + set(value) = definedExternally + var year: String? + get() = definedExternally + set(value) = definedExternally + var month: String? + get() = definedExternally + set(value) = definedExternally + var day: String? + get() = definedExternally + set(value) = definedExternally + var hour: String? + get() = definedExternally + set(value) = definedExternally + var minute: String? + get() = definedExternally + set(value) = definedExternally + var second: String? + get() = definedExternally + set(value) = definedExternally + var timeZoneName: String? + get() = definedExternally + set(value) = definedExternally + var formatMatcher: String? + get() = definedExternally + set(value) = definedExternally + var hour12: Boolean? + get() = definedExternally + set(value) = definedExternally + var timeZone: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface ResolvedDateTimeFormatOptions { + var locale: String + var calendar: String + var numberingSystem: String + var timeZone: String + var hour12: Boolean? + get() = definedExternally + set(value) = definedExternally + var weekday: String? + get() = definedExternally + set(value) = definedExternally + var era: String? + get() = definedExternally + set(value) = definedExternally + var year: String? + get() = definedExternally + set(value) = definedExternally + var month: String? + get() = definedExternally + set(value) = definedExternally + var day: String? + get() = definedExternally + set(value) = definedExternally + var hour: String? + get() = definedExternally + set(value) = definedExternally + var minute: String? + get() = definedExternally + set(value) = definedExternally + var second: String? + get() = definedExternally + set(value) = definedExternally + var timeZoneName: String? + get() = definedExternally + set(value) = definedExternally +} + +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +external interface DateTimeFormat { + fun format(date: Date = definedExternally): String + fun format(): String + fun format(date: Number = definedExternally): String + fun resolvedOptions(): ResolvedDateTimeFormatOptions + + companion object { + @nativeInvoke + operator fun invoke(locales: Any /* String | Array */ = definedExternally, options: DateTimeFormatOptions = definedExternally): DateTimeFormat + fun supportedLocalesOf(locales: Any /* String | Array */, options: DateTimeFormatOptions = definedExternally): Array + } +} \ No newline at end of file diff --git a/modules/mod2/externals/lib.es5.kt b/modules/mod2/externals/lib.es5.kt new file mode 100644 index 0000000..a143da0 --- /dev/null +++ b/modules/mod2/externals/lib.es5.kt @@ -0,0 +1,69 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface DateConstructor { + @nativeInvoke + operator fun invoke(): String + var prototype: Date + fun parse(s: String): Number + fun UTC(year: Number, month: Number, date: Number = definedExternally, hours: Number = definedExternally, minutes: Number = definedExternally, seconds: Number = definedExternally, ms: Number = definedExternally): Number + fun now(): Number +} + +external interface ConcatArray { + var length: Number + @nativeGetter + operator fun get(n: Number): T? + @nativeSetter + operator fun set(n: Number, value: T) + fun join(separator: String = definedExternally): String + fun slice(start: Number = definedExternally, end: Number = definedExternally): Array +} + +external interface ArrayConstructor { + fun from(iterable: Iterable): Array + fun from(iterable: ArrayLike): Array + fun from(iterable: Iterable, mapfn: (v: T, k: Number) -> U, thisArg: Any = definedExternally): Array + fun from(iterable: Iterable, mapfn: (v: T, k: Number) -> U): Array + fun from(iterable: ArrayLike, mapfn: (v: T, k: Number) -> U, thisArg: Any = definedExternally): Array + fun from(iterable: ArrayLike, mapfn: (v: T, k: Number) -> U): Array + fun of(vararg items: T): Array + @nativeInvoke + operator fun invoke(arrayLength: Number = definedExternally): Array + @nativeInvoke + operator fun invoke(): Array + @nativeInvoke + operator fun invoke(arrayLength: Number): Array + @nativeInvoke + operator fun invoke(vararg items: T): Array + fun isArray(arg: Any): Boolean + var prototype: Array +} + +external interface PromiseLike { + fun then(onfulfilled: ((value: T) -> Any?)? = definedExternally, onrejected: ((reason: Any) -> Any?)? = definedExternally): PromiseLike +} + +external interface ArrayLike { + var length: Number + @nativeGetter + operator fun get(n: Number): T? + @nativeSetter + operator fun set(n: Number, value: T) +} + +typealias Record = Any \ No newline at end of file diff --git a/modules/mod2/externals/lib.scripthost.kt b/modules/mod2/externals/lib.scripthost.kt new file mode 100644 index 0000000..809347e --- /dev/null +++ b/modules/mod2/externals/lib.scripthost.kt @@ -0,0 +1,20 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package tsstdlib + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external open class VarDate { + open var VarDate_typekey: VarDate +} \ No newline at end of file diff --git a/modules/mod2/externals/nonDeclarations.ts.kt b/modules/mod2/externals/nonDeclarations.ts.kt new file mode 100644 index 0000000..3650dca --- /dev/null +++ b/modules/mod2/externals/nonDeclarations.ts.kt @@ -0,0 +1,114 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package ts + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +typealias SortedReadonlyArray = Array + +typealias SortedArray = Array + +typealias NodeArray = Array + +typealias DotToken = PunctuationToken + +typealias DotDotDotToken = PunctuationToken + +typealias QuestionToken = PunctuationToken + +typealias ExclamationToken = PunctuationToken + +typealias ColonToken = PunctuationToken + +typealias EqualsToken = PunctuationToken + +typealias AsteriskToken = PunctuationToken + +typealias EqualsGreaterThanToken = PunctuationToken + +typealias PlusToken = PunctuationToken + +typealias MinusToken = PunctuationToken + +typealias QuestionDotToken = PunctuationToken + +typealias AssertsKeyword = KeywordToken + +typealias AwaitKeyword = KeywordToken + +typealias AwaitKeywordToken = AwaitKeyword + +typealias AssertsToken = AssertsKeyword + +typealias AbstractKeyword = ModifierToken + +typealias AsyncKeyword = ModifierToken + +typealias ConstKeyword = ModifierToken + +typealias DeclareKeyword = ModifierToken + +typealias DefaultKeyword = ModifierToken + +typealias ExportKeyword = ModifierToken + +typealias PrivateKeyword = ModifierToken + +typealias ProtectedKeyword = ModifierToken + +typealias PublicKeyword = ModifierToken + +typealias ReadonlyKeyword = ModifierToken + +typealias OverrideKeyword = ModifierToken + +typealias StaticKeyword = ModifierToken + +typealias ReadonlyToken = ReadonlyKeyword + +typealias ModifiersArray = NodeArray + +typealias IncrementExpression = UpdateExpression + +typealias ExponentiationOperator = SyntaxKind.AsteriskAsteriskToken + +typealias BinaryOperatorToken = Token + +typealias AssignmentOperatorToken = Token + +typealias FunctionBody = Block + +typealias WriteFileCallback = (fileName: String, data: String, writeByteOrderMark: Boolean, onError: (message: String) -> Unit, sourceFiles: Array) -> Unit + +typealias CustomTransformerFactory = (context: TransformationContext) -> CustomTransformer + +typealias SymbolTable = UnderscoreEscapedMap + +typealias JsFileExtensionInfo = FileExtensionInfo + +typealias EmitHelperUniqueNameCallback = (name: String) -> String + +typealias TransformerFactory = (context: TransformationContext) -> Transformer + +typealias Transformer = (node: T) -> T + +typealias Visitor = (node: Node) -> dynamic + +typealias FileWatcherCallback = (fileName: String, eventKind: FileWatcherEventKind) -> Unit + +typealias DirectoryWatcherCallback = (fileName: String) -> Unit + +typealias DiagnosticReporter = (diagnostic: Diagnostic) -> Unit + +typealias CodeActionCommand = InstallPackageAction \ No newline at end of file diff --git a/modules/mod2/externals/output-collector.module_typescript-to-lua.kt b/modules/mod2/externals/output-collector.module_typescript-to-lua.kt new file mode 100644 index 0000000..0c57eac --- /dev/null +++ b/modules/mod2/externals/output-collector.module_typescript-to-lua.kt @@ -0,0 +1,33 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.SourceFile + +external interface TranspiledFile { + var outPath: String + var sourceFiles: Array + var lua: String? + get() = definedExternally + set(value) = definedExternally + var luaSourceMap: String? + get() = definedExternally + set(value) = definedExternally + var declaration: String? + get() = definedExternally + set(value) = definedExternally + var declarationMap: String? + get() = definedExternally + set(value) = definedExternally +} \ No newline at end of file diff --git a/modules/mod2/externals/parse.module_typescript-to-lua.kt b/modules/mod2/externals/parse.module_typescript-to-lua.kt new file mode 100644 index 0000000..052faf7 --- /dev/null +++ b/modules/mod2/externals/parse.module_typescript-to-lua.kt @@ -0,0 +1,21 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface ParsedCommandLine : ts.ParsedCommandLine + +external fun updateParsedConfigFile(parsedConfigFile: ts.ParsedCommandLine): ParsedCommandLine + +external fun parseCommandLine(args: Array): ParsedCommandLine \ No newline at end of file diff --git a/modules/mod2/externals/plugins.module_typescript-to-lua.kt b/modules/mod2/externals/plugins.module_typescript-to-lua.kt new file mode 100644 index 0000000..24d3ea4 --- /dev/null +++ b/modules/mod2/externals/plugins.module_typescript-to-lua.kt @@ -0,0 +1,24 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface Plugin { + var visitors: Visitors? + get() = definedExternally + set(value) = definedExternally + var printer: Printer? + get() = definedExternally + set(value) = definedExternally +} \ No newline at end of file diff --git a/modules/mod2/externals/report.module_typescript-to-lua.kt b/modules/mod2/externals/report.module_typescript-to-lua.kt new file mode 100644 index 0000000..f1582a6 --- /dev/null +++ b/modules/mod2/externals/report.module_typescript-to-lua.kt @@ -0,0 +1,48 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.DiagnosticRelatedInformation +import ts.DiagnosticCategory +import ts.SourceFile +import ts.Diagnostic +import ts.System +import ts.DiagnosticReporter + +external interface `T$13` { + var code: Any + var reportsUnnecessary: Any? + get() = definedExternally + set(value) = definedExternally + var reportsDeprecated: Any? + get() = definedExternally + set(value) = definedExternally + var source: String? + get() = definedExternally + set(value) = definedExternally + var relatedInformation: Array? + get() = definedExternally + set(value) = definedExternally + var category: DiagnosticCategory + var file: SourceFile? + var start: Number? + var length: Number? + var messageText: dynamic /* String | ts.DiagnosticMessageChain */ + get() = definedExternally + set(value) = definedExternally +} + +external var prepareDiagnosticForFormatting: (diagnostic: Diagnostic) -> `T$13` + +external fun createDiagnosticReporter(pretty: Boolean, system: System = definedExternally): DiagnosticReporter \ No newline at end of file diff --git a/modules/mod2/externals/source-map.module_source-map.kt b/modules/mod2/externals/source-map.module_source-map.kt new file mode 100644 index 0000000..6880a36 --- /dev/null +++ b/modules/mod2/externals/source-map.module_source-map.kt @@ -0,0 +1,192 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +typealias SourceMapUrl = String + +external interface StartOfSourceMap { + var file: String? + get() = definedExternally + set(value) = definedExternally + var sourceRoot: String? + get() = definedExternally + set(value) = definedExternally + var skipValidation: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface RawSourceMap { + var version: Number + var sources: Array + var names: Array + var sourceRoot: String? + get() = definedExternally + set(value) = definedExternally + var sourcesContent: Array? + get() = definedExternally + set(value) = definedExternally + var mappings: String + var file: String +} + +external interface RawIndexMap : StartOfSourceMap { + var version: Number + var sections: Array +} + +external interface RawSection { + var offset: Position + var map: RawSourceMap +} + +external interface Position { + var line: Number + var column: Number +} + +external interface NullablePosition { + var line: Number? + var column: Number? + var lastColumn: Number? +} + +external interface MappedPosition { + var source: String + var line: Number + var column: Number + var name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface NullableMappedPosition { + var source: String? + var line: Number? + var column: Number? + var name: String? +} + +external interface MappingItem { + var source: String + var generatedLine: Number + var generatedColumn: Number + var originalLine: Number + var originalColumn: Number + var name: String +} + +external interface Mapping { + var generated: Position + var original: Position + var source: String + var name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface CodeWithSourceMap { + var code: String + var map: SourceMapGenerator +} + +external interface SourceMapConsumer { + fun computeColumnSpans() + fun originalPositionFor(generatedPosition: Position /* Position & `T$19` */): NullableMappedPosition + fun generatedPositionFor(originalPosition: MappedPosition /* MappedPosition & `T$19` */): NullablePosition + fun allGeneratedPositionsFor(originalPosition: MappedPosition): Array + fun hasContentsOfAllSources(): Boolean + fun sourceContentFor(source: String, returnNullOnMissing: Boolean = definedExternally): String? + fun eachMapping(callback: (mapping: MappingItem) -> Unit, context: Any = definedExternally, order: Number = definedExternally) + fun destroy() +} + +external interface SourceMapConsumerConstructor { + var prototype: SourceMapConsumer + var GENERATED_ORDER: Number + var ORIGINAL_ORDER: Number + var GREATEST_LOWER_BOUND: Number + var LEAST_UPPER_BOUND: Number + fun fromSourceMap(sourceMap: SourceMapGenerator, sourceMapUrl: SourceMapUrl = definedExternally): Promise + fun with(rawSourceMap: RawSourceMap, sourceMapUrl: SourceMapUrl?, callback: (consumer: Any /* BasicSourceMapConsumer | IndexedSourceMapConsumer */) -> Any?): Promise + fun with(rawSourceMap: RawIndexMap, sourceMapUrl: SourceMapUrl?, callback: (consumer: Any /* BasicSourceMapConsumer | IndexedSourceMapConsumer */) -> Any?): Promise + fun with(rawSourceMap: String, sourceMapUrl: SourceMapUrl?, callback: (consumer: Any /* BasicSourceMapConsumer | IndexedSourceMapConsumer */) -> Any?): Promise +} + +external interface BasicSourceMapConsumer : SourceMapConsumer { + var file: String + var sourceRoot: String + var sources: Array + var sourcesContent: Array +} + +external interface BasicSourceMapConsumerConstructor { + var prototype: BasicSourceMapConsumer + fun fromSourceMap(sourceMap: SourceMapGenerator): Promise +} + +external interface IndexedSourceMapConsumer : SourceMapConsumer { + var sources: Array +} + +external interface IndexedSourceMapConsumerConstructor { + var prototype: IndexedSourceMapConsumer +} + +external open class SourceMapGenerator(startOfSourceMap: StartOfSourceMap = definedExternally) { + open fun addMapping(mapping: Mapping) + open fun setSourceContent(sourceFile: String, sourceContent: String) + open fun applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile: String = definedExternally, sourceMapPath: String = definedExternally) + override fun toString(): String + open fun toJSON(): RawSourceMap + + companion object { + fun fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator + } +} + +external open class SourceNode { + open var children: Array + open var sourceContents: Any + open var line: Number + open var column: Number + open var source: String + open var name: String + constructor() + constructor(line: Number?, column: Number?, source: String?, chunks: Array = definedExternally, name: String = definedExternally) + constructor(line: Number?, column: Number?, source: String?) + constructor(line: Number?, column: Number?, source: String?, chunks: Array = definedExternally) + constructor(line: Number?, column: Number?, source: String?, chunks: SourceNode = definedExternally, name: String = definedExternally) + constructor(line: Number?, column: Number?, source: String?, chunks: SourceNode = definedExternally) + constructor(line: Number?, column: Number?, source: String?, chunks: String = definedExternally, name: String = definedExternally) + constructor(line: Number?, column: Number?, source: String?, chunks: String = definedExternally) + open fun add(chunk: Array): SourceNode + open fun add(chunk: SourceNode): SourceNode + open fun add(chunk: String): SourceNode + open fun prepend(chunk: Array): SourceNode + open fun prepend(chunk: SourceNode): SourceNode + open fun prepend(chunk: String): SourceNode + open fun setSourceContent(sourceFile: String, sourceContent: String) + open fun walk(fn: (chunk: String, mapping: MappedPosition) -> Unit) + open fun walkSourceContents(fn: (file: String, content: String) -> Unit) + open fun join(sep: String): SourceNode + open fun replaceRight(pattern: String, replacement: String): SourceNode + override fun toString(): String + open fun toStringWithSourceMap(startOfSourceMap: StartOfSourceMap = definedExternally): CodeWithSourceMap + + companion object { + fun fromStringWithSourceMap(code: String, sourceMapConsumer: SourceMapConsumer, relativePath: String = definedExternally): SourceNode + } +} \ No newline at end of file diff --git a/modules/mod2/externals/transpile.module_typescript-to-lua.kt b/modules/mod2/externals/transpile.module_typescript-to-lua.kt new file mode 100644 index 0000000..8681706 --- /dev/null +++ b/modules/mod2/externals/transpile.module_typescript-to-lua.kt @@ -0,0 +1,40 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.Program +import ts.SourceFile +import ts.CustomTransformers +import ts.Diagnostic +import ts.WriteFileCallback + +external interface TranspileOptions { + var program: Program + var sourceFiles: Array? + get() = definedExternally + set(value) = definedExternally + var customTransformers: CustomTransformers? + get() = definedExternally + set(value) = definedExternally + var plugins: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface TranspileResult { + var diagnostics: Array + var transpiledFiles: Array +} + +external fun getProgramTranspileResult(emitHost: EmitHost, writeFileResult: WriteFileCallback, __2: TranspileOptions): TranspileResult \ No newline at end of file diff --git a/modules/mod2/externals/transpiler.module_typescript-to-lua.kt b/modules/mod2/externals/transpiler.module_typescript-to-lua.kt new file mode 100644 index 0000000..16b18b0 --- /dev/null +++ b/modules/mod2/externals/transpiler.module_typescript-to-lua.kt @@ -0,0 +1,55 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.WriteFileCallback +import ts.Diagnostic +import ts.Program + +external interface TranspilerOptions { + var emitHost: EmitHost? + get() = definedExternally + set(value) = definedExternally +} + +external interface EmitOptions : TranspileOptions { + var writeFile: WriteFileCallback? + get() = definedExternally + set(value) = definedExternally +} + +external interface EmitResult { + var emitSkipped: Boolean + var diagnostics: Array +} + +external interface `T$20` { + var emitPlan: Array +} + +external open class Transpiler(__0: TranspilerOptions = definedExternally) { + open var emitHost: EmitHost + open fun emit(emitOptions: EmitOptions): EmitResult + open fun getEmitPlan(program: Program, diagnostics: Array, files: Array): `T$20` +} + +external fun getEmitPath(file: String, program: Program): String + +external fun getEmitPathRelativeToOutDir(fileName: String, program: Program): String + +external fun getSourceDir(program: Program): String + +external fun getEmitOutDir(program: Program): String + +external fun getProjectRoot(program: Program): String \ No newline at end of file diff --git a/modules/mod2/externals/tsconfig.module_typescript-to-lua.kt b/modules/mod2/externals/tsconfig.module_typescript-to-lua.kt new file mode 100644 index 0000000..8eadae2 --- /dev/null +++ b/modules/mod2/externals/tsconfig.module_typescript-to-lua.kt @@ -0,0 +1,19 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.CompilerOptions +import ts.System + +external fun parseConfigFileWithSystem(configFileName: String, commandLineOptions: OmitIndexSignature /* OmitIndexSignature & `T$0` */ = definedExternally, system: System = definedExternally): ParsedCommandLine \ No newline at end of file diff --git a/modules/mod2/externals/typescript.module_typescript.kt b/modules/mod2/externals/typescript.module_typescript.kt new file mode 100644 index 0000000..83261af --- /dev/null +++ b/modules/mod2/externals/typescript.module_typescript.kt @@ -0,0 +1,19 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun setTimeout(handler: (args: Any) -> Unit, timeout: Number): Any + +external fun clearTimeout(handle: Any) \ No newline at end of file diff --git a/modules/mod2/externals/typescript.ts.ScriptSnapshot.module_typescript.kt b/modules/mod2/externals/typescript.ts.ScriptSnapshot.module_typescript.kt new file mode 100644 index 0000000..acab3da --- /dev/null +++ b/modules/mod2/externals/typescript.ts.ScriptSnapshot.module_typescript.kt @@ -0,0 +1,20 @@ +@file:JsQualifier("ts.ScriptSnapshot") +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package ts.ScriptSnapshot + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.IScriptSnapshot + +external fun fromString(text: String): IScriptSnapshot \ No newline at end of file diff --git a/modules/mod2/externals/typescript.ts.module_typescript.kt b/modules/mod2/externals/typescript.ts.module_typescript.kt new file mode 100644 index 0000000..73cc27f --- /dev/null +++ b/modules/mod2/externals/typescript.ts.module_typescript.kt @@ -0,0 +1,8487 @@ +@file:JsModule("typescript") +@file:JsNonModule +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package ts + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external var versionMajorMinor: Any + +external var version: String + +external interface MapLike { + @nativeGetter + operator fun get(index: String): T? + @nativeSetter + operator fun set(index: String, value: T) +} + +external interface ReadonlyCollection { + var size: Number + fun has(key: K): Boolean + fun keys(): Iterator +} + +external interface Collection : ReadonlyCollection { + fun delete(key: K): Boolean + fun clear() +} + +external interface ReadonlyESMap : ReadonlyCollection { + fun get(key: K): V? + fun values(): Iterator + fun entries(): Iterator */> + fun forEach(action: (value: V, key: K) -> Unit) +} + +external interface ReadonlyMap : ReadonlyESMap + +external interface ESMap : ReadonlyESMap, Collection { + fun set(key: K, value: V): ESMap /* this */ +} + +external interface Map : ESMap + +external interface ReadonlySet : ReadonlyCollection { + override fun has(value: T): Boolean + fun values(): Iterator + fun entries(): Iterator */> + fun forEach(action: (value: T, key: T) -> Unit) +} + +external interface Set : ReadonlySet, Collection { + fun add(value: T): Set /* this */ + override fun delete(value: T): Boolean +} + +external interface Iterator { + fun next(): dynamic /* `T$1` | `T$2` */ +} + +external interface Push { + fun push(vararg values: T) +} + +external interface TextRange { + var pos: Number + var end: Number +} + +external interface ReadonlyTextRange { + var pos: Number + var end: Number +} + +external enum class SyntaxKind { + Unknown /* = 0 */, + EndOfFileToken /* = 1 */, + SingleLineCommentTrivia /* = 2 */, + MultiLineCommentTrivia /* = 3 */, + NewLineTrivia /* = 4 */, + WhitespaceTrivia /* = 5 */, + ShebangTrivia /* = 6 */, + ConflictMarkerTrivia /* = 7 */, + NumericLiteral /* = 8 */, + BigIntLiteral /* = 9 */, + StringLiteral /* = 10 */, + JsxText /* = 11 */, + JsxTextAllWhiteSpaces /* = 12 */, + RegularExpressionLiteral /* = 13 */, + NoSubstitutionTemplateLiteral /* = 14 */, + TemplateHead /* = 15 */, + TemplateMiddle /* = 16 */, + TemplateTail /* = 17 */, + OpenBraceToken /* = 18 */, + CloseBraceToken /* = 19 */, + OpenParenToken /* = 20 */, + CloseParenToken /* = 21 */, + OpenBracketToken /* = 22 */, + CloseBracketToken /* = 23 */, + DotToken /* = 24 */, + DotDotDotToken /* = 25 */, + SemicolonToken /* = 26 */, + CommaToken /* = 27 */, + QuestionDotToken /* = 28 */, + LessThanToken /* = 29 */, + LessThanSlashToken /* = 30 */, + GreaterThanToken /* = 31 */, + LessThanEqualsToken /* = 32 */, + GreaterThanEqualsToken /* = 33 */, + EqualsEqualsToken /* = 34 */, + ExclamationEqualsToken /* = 35 */, + EqualsEqualsEqualsToken /* = 36 */, + ExclamationEqualsEqualsToken /* = 37 */, + EqualsGreaterThanToken /* = 38 */, + PlusToken /* = 39 */, + MinusToken /* = 40 */, + AsteriskToken /* = 41 */, + AsteriskAsteriskToken /* = 42 */, + SlashToken /* = 43 */, + PercentToken /* = 44 */, + PlusPlusToken /* = 45 */, + MinusMinusToken /* = 46 */, + LessThanLessThanToken /* = 47 */, + GreaterThanGreaterThanToken /* = 48 */, + GreaterThanGreaterThanGreaterThanToken /* = 49 */, + AmpersandToken /* = 50 */, + BarToken /* = 51 */, + CaretToken /* = 52 */, + ExclamationToken /* = 53 */, + TildeToken /* = 54 */, + AmpersandAmpersandToken /* = 55 */, + BarBarToken /* = 56 */, + QuestionToken /* = 57 */, + ColonToken /* = 58 */, + AtToken /* = 59 */, + QuestionQuestionToken /* = 60 */, + BacktickToken /* = 61 */, + HashToken /* = 62 */, + EqualsToken /* = 63 */, + PlusEqualsToken /* = 64 */, + MinusEqualsToken /* = 65 */, + AsteriskEqualsToken /* = 66 */, + AsteriskAsteriskEqualsToken /* = 67 */, + SlashEqualsToken /* = 68 */, + PercentEqualsToken /* = 69 */, + LessThanLessThanEqualsToken /* = 70 */, + GreaterThanGreaterThanEqualsToken /* = 71 */, + GreaterThanGreaterThanGreaterThanEqualsToken /* = 72 */, + AmpersandEqualsToken /* = 73 */, + BarEqualsToken /* = 74 */, + BarBarEqualsToken /* = 75 */, + AmpersandAmpersandEqualsToken /* = 76 */, + QuestionQuestionEqualsToken /* = 77 */, + CaretEqualsToken /* = 78 */, + Identifier /* = 79 */, + PrivateIdentifier /* = 80 */, + BreakKeyword /* = 81 */, + CaseKeyword /* = 82 */, + CatchKeyword /* = 83 */, + ClassKeyword /* = 84 */, + ConstKeyword /* = 85 */, + ContinueKeyword /* = 86 */, + DebuggerKeyword /* = 87 */, + DefaultKeyword /* = 88 */, + DeleteKeyword /* = 89 */, + DoKeyword /* = 90 */, + ElseKeyword /* = 91 */, + EnumKeyword /* = 92 */, + ExportKeyword /* = 93 */, + ExtendsKeyword /* = 94 */, + FalseKeyword /* = 95 */, + FinallyKeyword /* = 96 */, + ForKeyword /* = 97 */, + FunctionKeyword /* = 98 */, + IfKeyword /* = 99 */, + ImportKeyword /* = 100 */, + InKeyword /* = 101 */, + InstanceOfKeyword /* = 102 */, + NewKeyword /* = 103 */, + NullKeyword /* = 104 */, + ReturnKeyword /* = 105 */, + SuperKeyword /* = 106 */, + SwitchKeyword /* = 107 */, + ThisKeyword /* = 108 */, + ThrowKeyword /* = 109 */, + TrueKeyword /* = 110 */, + TryKeyword /* = 111 */, + TypeOfKeyword /* = 112 */, + VarKeyword /* = 113 */, + VoidKeyword /* = 114 */, + WhileKeyword /* = 115 */, + WithKeyword /* = 116 */, + ImplementsKeyword /* = 117 */, + InterfaceKeyword /* = 118 */, + LetKeyword /* = 119 */, + PackageKeyword /* = 120 */, + PrivateKeyword /* = 121 */, + ProtectedKeyword /* = 122 */, + PublicKeyword /* = 123 */, + StaticKeyword /* = 124 */, + YieldKeyword /* = 125 */, + AbstractKeyword /* = 126 */, + AsKeyword /* = 127 */, + AssertsKeyword /* = 128 */, + AnyKeyword /* = 129 */, + AsyncKeyword /* = 130 */, + AwaitKeyword /* = 131 */, + BooleanKeyword /* = 132 */, + ConstructorKeyword /* = 133 */, + DeclareKeyword /* = 134 */, + GetKeyword /* = 135 */, + InferKeyword /* = 136 */, + IntrinsicKeyword /* = 137 */, + IsKeyword /* = 138 */, + KeyOfKeyword /* = 139 */, + ModuleKeyword /* = 140 */, + NamespaceKeyword /* = 141 */, + NeverKeyword /* = 142 */, + ReadonlyKeyword /* = 143 */, + RequireKeyword /* = 144 */, + NumberKeyword /* = 145 */, + ObjectKeyword /* = 146 */, + SetKeyword /* = 147 */, + StringKeyword /* = 148 */, + SymbolKeyword /* = 149 */, + TypeKeyword /* = 150 */, + UndefinedKeyword /* = 151 */, + UniqueKeyword /* = 152 */, + UnknownKeyword /* = 153 */, + FromKeyword /* = 154 */, + GlobalKeyword /* = 155 */, + BigIntKeyword /* = 156 */, + OverrideKeyword /* = 157 */, + OfKeyword /* = 158 */, + QualifiedName /* = 159 */, + ComputedPropertyName /* = 160 */, + TypeParameter /* = 161 */, + Parameter /* = 162 */, + Decorator /* = 163 */, + PropertySignature /* = 164 */, + PropertyDeclaration /* = 165 */, + MethodSignature /* = 166 */, + MethodDeclaration /* = 167 */, + ClassStaticBlockDeclaration /* = 168 */, + Constructor /* = 169 */, + GetAccessor /* = 170 */, + SetAccessor /* = 171 */, + CallSignature /* = 172 */, + ConstructSignature /* = 173 */, + IndexSignature /* = 174 */, + TypePredicate /* = 175 */, + TypeReference /* = 176 */, + FunctionType /* = 177 */, + ConstructorType /* = 178 */, + TypeQuery /* = 179 */, + TypeLiteral /* = 180 */, + ArrayType /* = 181 */, + TupleType /* = 182 */, + OptionalType /* = 183 */, + RestType /* = 184 */, + UnionType /* = 185 */, + IntersectionType /* = 186 */, + ConditionalType /* = 187 */, + InferType /* = 188 */, + ParenthesizedType /* = 189 */, + ThisType /* = 190 */, + TypeOperator /* = 191 */, + IndexedAccessType /* = 192 */, + MappedType /* = 193 */, + LiteralType /* = 194 */, + NamedTupleMember /* = 195 */, + TemplateLiteralType /* = 196 */, + TemplateLiteralTypeSpan /* = 197 */, + ImportType /* = 198 */, + ObjectBindingPattern /* = 199 */, + ArrayBindingPattern /* = 200 */, + BindingElement /* = 201 */, + ArrayLiteralExpression /* = 202 */, + ObjectLiteralExpression /* = 203 */, + PropertyAccessExpression /* = 204 */, + ElementAccessExpression /* = 205 */, + CallExpression /* = 206 */, + NewExpression /* = 207 */, + TaggedTemplateExpression /* = 208 */, + TypeAssertionExpression /* = 209 */, + ParenthesizedExpression /* = 210 */, + FunctionExpression /* = 211 */, + ArrowFunction /* = 212 */, + DeleteExpression /* = 213 */, + TypeOfExpression /* = 214 */, + VoidExpression /* = 215 */, + AwaitExpression /* = 216 */, + PrefixUnaryExpression /* = 217 */, + PostfixUnaryExpression /* = 218 */, + BinaryExpression /* = 219 */, + ConditionalExpression /* = 220 */, + TemplateExpression /* = 221 */, + YieldExpression /* = 222 */, + SpreadElement /* = 223 */, + ClassExpression /* = 224 */, + OmittedExpression /* = 225 */, + ExpressionWithTypeArguments /* = 226 */, + AsExpression /* = 227 */, + NonNullExpression /* = 228 */, + MetaProperty /* = 229 */, + SyntheticExpression /* = 230 */, + TemplateSpan /* = 231 */, + SemicolonClassElement /* = 232 */, + Block /* = 233 */, + EmptyStatement /* = 234 */, + VariableStatement /* = 235 */, + ExpressionStatement /* = 236 */, + IfStatement /* = 237 */, + DoStatement /* = 238 */, + WhileStatement /* = 239 */, + ForStatement /* = 240 */, + ForInStatement /* = 241 */, + ForOfStatement /* = 242 */, + ContinueStatement /* = 243 */, + BreakStatement /* = 244 */, + ReturnStatement /* = 245 */, + WithStatement /* = 246 */, + SwitchStatement /* = 247 */, + LabeledStatement /* = 248 */, + ThrowStatement /* = 249 */, + TryStatement /* = 250 */, + DebuggerStatement /* = 251 */, + VariableDeclaration /* = 252 */, + VariableDeclarationList /* = 253 */, + FunctionDeclaration /* = 254 */, + ClassDeclaration /* = 255 */, + InterfaceDeclaration /* = 256 */, + TypeAliasDeclaration /* = 257 */, + EnumDeclaration /* = 258 */, + ModuleDeclaration /* = 259 */, + ModuleBlock /* = 260 */, + CaseBlock /* = 261 */, + NamespaceExportDeclaration /* = 262 */, + ImportEqualsDeclaration /* = 263 */, + ImportDeclaration /* = 264 */, + ImportClause /* = 265 */, + NamespaceImport /* = 266 */, + NamedImports /* = 267 */, + ImportSpecifier /* = 268 */, + ExportAssignment /* = 269 */, + ExportDeclaration /* = 270 */, + NamedExports /* = 271 */, + NamespaceExport /* = 272 */, + ExportSpecifier /* = 273 */, + MissingDeclaration /* = 274 */, + ExternalModuleReference /* = 275 */, + JsxElement /* = 276 */, + JsxSelfClosingElement /* = 277 */, + JsxOpeningElement /* = 278 */, + JsxClosingElement /* = 279 */, + JsxFragment /* = 280 */, + JsxOpeningFragment /* = 281 */, + JsxClosingFragment /* = 282 */, + JsxAttribute /* = 283 */, + JsxAttributes /* = 284 */, + JsxSpreadAttribute /* = 285 */, + JsxExpression /* = 286 */, + CaseClause /* = 287 */, + DefaultClause /* = 288 */, + HeritageClause /* = 289 */, + CatchClause /* = 290 */, + PropertyAssignment /* = 291 */, + ShorthandPropertyAssignment /* = 292 */, + SpreadAssignment /* = 293 */, + EnumMember /* = 294 */, + UnparsedPrologue /* = 295 */, + UnparsedPrepend /* = 296 */, + UnparsedText /* = 297 */, + UnparsedInternalText /* = 298 */, + UnparsedSyntheticReference /* = 299 */, + SourceFile /* = 300 */, + Bundle /* = 301 */, + UnparsedSource /* = 302 */, + InputFiles /* = 303 */, + JSDocTypeExpression /* = 304 */, + JSDocNameReference /* = 305 */, + JSDocMemberName /* = 306 */, + JSDocAllType /* = 307 */, + JSDocUnknownType /* = 308 */, + JSDocNullableType /* = 309 */, + JSDocNonNullableType /* = 310 */, + JSDocOptionalType /* = 311 */, + JSDocFunctionType /* = 312 */, + JSDocVariadicType /* = 313 */, + JSDocNamepathType /* = 314 */, + JSDocComment /* = 315 */, + JSDocText /* = 316 */, + JSDocTypeLiteral /* = 317 */, + JSDocSignature /* = 318 */, + JSDocLink /* = 319 */, + JSDocLinkCode /* = 320 */, + JSDocLinkPlain /* = 321 */, + JSDocTag /* = 322 */, + JSDocAugmentsTag /* = 323 */, + JSDocImplementsTag /* = 324 */, + JSDocAuthorTag /* = 325 */, + JSDocDeprecatedTag /* = 326 */, + JSDocClassTag /* = 327 */, + JSDocPublicTag /* = 328 */, + JSDocPrivateTag /* = 329 */, + JSDocProtectedTag /* = 330 */, + JSDocReadonlyTag /* = 331 */, + JSDocOverrideTag /* = 332 */, + JSDocCallbackTag /* = 333 */, + JSDocEnumTag /* = 334 */, + JSDocParameterTag /* = 335 */, + JSDocReturnTag /* = 336 */, + JSDocThisTag /* = 337 */, + JSDocTypeTag /* = 338 */, + JSDocTemplateTag /* = 339 */, + JSDocTypedefTag /* = 340 */, + JSDocSeeTag /* = 341 */, + JSDocPropertyTag /* = 342 */, + SyntaxList /* = 343 */, + NotEmittedStatement /* = 344 */, + PartiallyEmittedExpression /* = 345 */, + CommaListExpression /* = 346 */, + MergeDeclarationMarker /* = 347 */, + EndOfDeclarationMarker /* = 348 */, + SyntheticReferenceExpression /* = 349 */, + Count /* = 350 */, + FirstAssignment /* = 63 */, + LastAssignment /* = 78 */, + FirstCompoundAssignment /* = 64 */, + LastCompoundAssignment /* = 78 */, + FirstReservedWord /* = 81 */, + LastReservedWord /* = 116 */, + FirstKeyword /* = 81 */, + LastKeyword /* = 158 */, + FirstFutureReservedWord /* = 117 */, + LastFutureReservedWord /* = 125 */, + FirstTypeNode /* = 175 */, + LastTypeNode /* = 198 */, + FirstPunctuation /* = 18 */, + LastPunctuation /* = 78 */, + FirstToken /* = 0 */, + LastToken /* = 158 */, + FirstTriviaToken /* = 2 */, + LastTriviaToken /* = 7 */, + FirstLiteralToken /* = 8 */, + LastLiteralToken /* = 14 */, + FirstTemplateToken /* = 14 */, + LastTemplateToken /* = 17 */, + FirstBinaryOperator /* = 29 */, + LastBinaryOperator /* = 78 */, + FirstStatement /* = 235 */, + LastStatement /* = 251 */, + FirstNode /* = 159 */, + FirstJSDocNode /* = 304 */, + LastJSDocNode /* = 342 */, + FirstJSDocTagNode /* = 322 */, + LastJSDocTagNode /* = 342 */ +} + +external enum class NodeFlags { + None /* = 0 */, + Let /* = 1 */, + Const /* = 2 */, + NestedNamespace /* = 4 */, + Synthesized /* = 8 */, + Namespace /* = 16 */, + OptionalChain /* = 32 */, + ExportContext /* = 64 */, + ContainsThis /* = 128 */, + HasImplicitReturn /* = 256 */, + HasExplicitReturn /* = 512 */, + GlobalAugmentation /* = 1024 */, + HasAsyncFunctions /* = 2048 */, + DisallowInContext /* = 4096 */, + YieldContext /* = 8192 */, + DecoratorContext /* = 16384 */, + AwaitContext /* = 32768 */, + ThisNodeHasError /* = 65536 */, + JavaScriptFile /* = 131072 */, + ThisNodeOrAnySubNodesHasError /* = 262144 */, + HasAggregatedChildData /* = 524288 */, + JSDoc /* = 4194304 */, + JsonFile /* = 33554432 */, + BlockScoped /* = 3 */, + ReachabilityCheckFlags /* = 768 */, + ReachabilityAndEmitFlags /* = 2816 */, + ContextFlags /* = 25358336 */, + TypeExcludesFlags /* = 40960 */ +} + +external enum class ModifierFlags { + None /* = 0 */, + Export /* = 1 */, + Ambient /* = 2 */, + Public /* = 4 */, + Private /* = 8 */, + Protected /* = 16 */, + Static /* = 32 */, + Readonly /* = 64 */, + Abstract /* = 128 */, + Async /* = 256 */, + Default /* = 512 */, + Const /* = 2048 */, + HasComputedJSDocModifiers /* = 4096 */, + Deprecated /* = 8192 */, + Override /* = 16384 */, + HasComputedFlags /* = 536870912 */, + AccessibilityModifier /* = 28 */, + ParameterPropertyModifier /* = 16476 */, + NonPublicAccessibilityModifier /* = 24 */, + TypeScriptModifier /* = 18654 */, + ExportDefault /* = 513 */, + All /* = 27647 */ +} + +external enum class JsxFlags { + None /* = 0 */, + IntrinsicNamedElement /* = 1 */, + IntrinsicIndexedElement /* = 2 */, + IntrinsicElement /* = 3 */ +} + +external interface Node : ReadonlyTextRange { + fun getSourceFile(): SourceFile + fun getChildCount(sourceFile: SourceFile = definedExternally): Number + fun getChildAt(index: Number, sourceFile: SourceFile = definedExternally): Node + fun getChildren(sourceFile: SourceFile = definedExternally): Array + fun getStart(sourceFile: SourceFile = definedExternally, includeJsDocComment: Boolean = definedExternally): Number + fun getFullStart(): Number + fun getEnd(): Number + fun getWidth(sourceFile: SourceFileLike = definedExternally): Number + fun getFullWidth(): Number + fun getLeadingTriviaWidth(sourceFile: SourceFile = definedExternally): Number + fun getFullText(sourceFile: SourceFile = definedExternally): String + fun getText(sourceFile: SourceFile = definedExternally): String + fun getFirstToken(sourceFile: SourceFile = definedExternally): Node? + fun getLastToken(sourceFile: SourceFile = definedExternally): Node? + fun forEachChild(cbNode: (node: Node) -> T?, cbNodeArray: (nodes: NodeArray) -> T? = definedExternally): T? + var kind: SyntaxKind + var flags: NodeFlags + var decorators: NodeArray? + get() = definedExternally + set(value) = definedExternally + var modifiers: ModifiersArray? + get() = definedExternally + set(value) = definedExternally + var parent: Node +} + +external interface JSDocContainer + +external interface Token : Node { + override var kind: TKind +} + +external interface PunctuationToken : Token + +external interface KeywordToken : Token + +external interface ModifierToken : KeywordToken + +external enum class GeneratedIdentifierFlags { + None /* = 0 */, + ReservedInNestedScopes /* = 8 */, + Optimistic /* = 16 */, + FileLevel /* = 32 */, + AllowNameSubstitution /* = 64 */ +} + +external interface Identifier : PrimaryExpression, Declaration { + var text: String + var escapedText: dynamic /* String & `T$8` | Unit & `T$8` | InternalSymbolName */ + get() = definedExternally + set(value) = definedExternally + var originalKeywordKind: SyntaxKind? + get() = definedExternally + set(value) = definedExternally + var isInJSDocNamespace: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TransientIdentifier : Identifier { + var resolvedSymbol: Symbol +} + +external interface QualifiedName : Node { + var left: dynamic /* Identifier | QualifiedName */ + get() = definedExternally + set(value) = definedExternally + var right: Identifier +} + +external interface Declaration : Node { + var _declarationBrand: Any +} + +external interface NamedDeclaration : Declaration { + var name: dynamic /* Identifier? | PrivateIdentifier? | StringLiteral? | NoSubstitutionTemplateLiteral? | NumericLiteral? | ComputedPropertyName? | ElementAccessExpression? | ObjectBindingPattern? | ArrayBindingPattern? | PropertyAccessEntityNameExpression? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface DeclarationStatement : NamedDeclaration, Statement { + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ComputedPropertyName : Node { + override var parent: Declaration + var expression: Expression +} + +external interface PrivateIdentifier : Node { + var text: String + var escapedText: dynamic /* String & `T$8` | Unit & `T$8` | InternalSymbolName */ + get() = definedExternally + set(value) = definedExternally +} + +external interface Decorator : Node { + override var parent: NamedDeclaration + var expression: LeftHandSideExpression +} + +external interface TypeParameterDeclaration : NamedDeclaration { + override var parent: dynamic /* CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | FunctionExpression | ArrowFunction | ClassDeclaration | ClassExpression | InterfaceDeclaration | TypeAliasDeclaration | JSDocTemplateTag | InferTypeNode */ + get() = definedExternally + set(value) = definedExternally + override var name: Identifier + var constraint: TypeNode? + get() = definedExternally + set(value) = definedExternally + var default: TypeNode? + get() = definedExternally + set(value) = definedExternally + var expression: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface SignatureDeclarationBase : NamedDeclaration, JSDocContainer { + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally + var typeParameters: NodeArray? + get() = definedExternally + set(value) = definedExternally + var parameters: NodeArray + var type: TypeNode? + get() = definedExternally + set(value) = definedExternally +} + +external interface CallSignatureDeclaration : SignatureDeclarationBase, TypeElement { + override var kind: Any + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ConstructSignatureDeclaration : SignatureDeclarationBase, TypeElement { + override var kind: Any + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface VariableDeclaration : NamedDeclaration, JSDocContainer { + override var parent: dynamic /* VariableDeclarationList | CatchClause */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | ObjectBindingPattern | ArrayBindingPattern */ + get() = definedExternally + set(value) = definedExternally + var exclamationToken: ExclamationToken? + get() = definedExternally + set(value) = definedExternally + var type: TypeNode? + get() = definedExternally + set(value) = definedExternally + var initializer: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface VariableDeclarationList : Node { + override var parent: dynamic /* VariableStatement | ForStatement | ForOfStatement | ForInStatement */ + get() = definedExternally + set(value) = definedExternally + var declarations: NodeArray +} + +external interface ParameterDeclaration : NamedDeclaration, JSDocContainer { + override var parent: dynamic /* CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | FunctionExpression | ArrowFunction */ + get() = definedExternally + set(value) = definedExternally + var dotDotDotToken: DotDotDotToken? + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | ObjectBindingPattern | ArrayBindingPattern */ + get() = definedExternally + set(value) = definedExternally + var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally + var type: TypeNode? + get() = definedExternally + set(value) = definedExternally + var initializer: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface BindingElement : NamedDeclaration { + override var parent: dynamic /* ObjectBindingPattern | ArrayBindingPattern */ + get() = definedExternally + set(value) = definedExternally + var propertyName: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally + var dotDotDotToken: DotDotDotToken? + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | ObjectBindingPattern | ArrayBindingPattern */ + get() = definedExternally + set(value) = definedExternally + var initializer: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface PropertySignature : TypeElement, JSDocContainer { + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally + override var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally + var type: TypeNode? + get() = definedExternally + set(value) = definedExternally + var initializer: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface PropertyDeclaration : ClassElement, JSDocContainer { + override var parent: dynamic /* ClassDeclaration | ClassExpression */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally + var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally + var exclamationToken: ExclamationToken? + get() = definedExternally + set(value) = definedExternally + var type: TypeNode? + get() = definedExternally + set(value) = definedExternally + var initializer: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface ObjectLiteralElement : NamedDeclaration { + var _objectLiteralBrand: Any + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface PropertyAssignment : ObjectLiteralElement, JSDocContainer { + override var parent: ObjectLiteralExpression + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally + var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally + var exclamationToken: ExclamationToken? + get() = definedExternally + set(value) = definedExternally + var initializer: Expression +} + +external interface ShorthandPropertyAssignment : ObjectLiteralElement, JSDocContainer { + override var parent: ObjectLiteralExpression + override var name: Identifier + var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally + var exclamationToken: ExclamationToken? + get() = definedExternally + set(value) = definedExternally + var equalsToken: EqualsToken? + get() = definedExternally + set(value) = definedExternally + var objectAssignmentInitializer: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface SpreadAssignment : ObjectLiteralElement, JSDocContainer { + override var parent: ObjectLiteralExpression + var expression: Expression +} + +external interface PropertyLikeDeclaration : NamedDeclaration { + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ObjectBindingPattern : Node { + override var parent: dynamic /* VariableDeclaration | ParameterDeclaration | BindingElement */ + get() = definedExternally + set(value) = definedExternally + var elements: NodeArray +} + +external interface ArrayBindingPattern : Node { + override var parent: dynamic /* VariableDeclaration | ParameterDeclaration | BindingElement */ + get() = definedExternally + set(value) = definedExternally + var elements: NodeArray +} + +external interface FunctionLikeDeclarationBase : SignatureDeclarationBase { + var _functionLikeDeclarationBrand: Any + var asteriskToken: AsteriskToken? + get() = definedExternally + set(value) = definedExternally + var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally + var exclamationToken: ExclamationToken? + get() = definedExternally + set(value) = definedExternally + var body: dynamic /* Block? | Expression? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FunctionDeclaration : FunctionLikeDeclarationBase, DeclarationStatement { + override var kind: Any + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally + override var body: FunctionBody? + get() = definedExternally + set(value) = definedExternally +} + +external interface MethodSignature : SignatureDeclarationBase, TypeElement { + override var kind: Any + override var parent: dynamic /* ClassDeclaration | ClassExpression | InterfaceDeclaration | TypeLiteralNode */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally +} + +external interface MethodDeclaration : FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer { + override var kind: Any + override var parent: dynamic /* ClassDeclaration | ClassExpression | ObjectLiteralExpression */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally + override var body: FunctionBody? + get() = definedExternally + set(value) = definedExternally +} + +external interface ConstructorDeclaration : FunctionLikeDeclarationBase, ClassElement, JSDocContainer { + override var kind: Any + override var parent: dynamic /* ClassDeclaration | ClassExpression */ + get() = definedExternally + set(value) = definedExternally + override var body: FunctionBody? + get() = definedExternally + set(value) = definedExternally +} + +external interface SemicolonClassElement : ClassElement { + override var parent: dynamic /* ClassDeclaration | ClassExpression */ + get() = definedExternally + set(value) = definedExternally +} + +external interface GetAccessorDeclaration : FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer { + override var kind: Any + override var parent: dynamic /* ClassDeclaration | ClassExpression | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally + override var body: FunctionBody? + get() = definedExternally + set(value) = definedExternally + override var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally +} + +external interface SetAccessorDeclaration : FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer { + override var kind: Any + override var parent: dynamic /* ClassDeclaration | ClassExpression | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally + override var body: FunctionBody? + get() = definedExternally + set(value) = definedExternally + override var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally +} + +external interface IndexSignatureDeclaration : SignatureDeclarationBase, ClassElement, TypeElement { + override var kind: Any + override var parent: dynamic /* ClassDeclaration | ClassExpression | InterfaceDeclaration | TypeLiteralNode */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ClassStaticBlockDeclaration : ClassElement, JSDocContainer { + override var parent: dynamic /* ClassDeclaration | ClassExpression */ + get() = definedExternally + set(value) = definedExternally + var body: Block +} + +external interface TypeNode : Node { + var _typeNodeBrand: Any +} + +external interface KeywordTypeNode : KeywordToken, TypeNode { + override var kind: TKind +} + +external interface ImportTypeNode : NodeWithTypeArguments { + var isTypeOf: Boolean + var argument: TypeNode + var qualifier: dynamic /* Identifier? | QualifiedName? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ThisTypeNode : TypeNode + +external interface FunctionOrConstructorTypeNodeBase : TypeNode, SignatureDeclarationBase { + override var kind: dynamic /* SyntaxKind.FunctionType | SyntaxKind.ConstructorType */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FunctionTypeNode : FunctionOrConstructorTypeNodeBase { + override var kind: Any +} + +external interface ConstructorTypeNode : FunctionOrConstructorTypeNodeBase { + override var kind: Any +} + +external interface NodeWithTypeArguments : TypeNode { + var typeArguments: NodeArray? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeReferenceNode : NodeWithTypeArguments { + var typeName: dynamic /* Identifier | QualifiedName */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TypePredicateNode : TypeNode { + override var parent: dynamic /* CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | FunctionExpression | ArrowFunction | JSDocTypeExpression */ + get() = definedExternally + set(value) = definedExternally + var assertsModifier: AssertsToken? + get() = definedExternally + set(value) = definedExternally + var parameterName: dynamic /* Identifier | ThisTypeNode */ + get() = definedExternally + set(value) = definedExternally + var type: TypeNode? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeQueryNode : TypeNode { + var exprName: dynamic /* Identifier | QualifiedName */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeLiteralNode : TypeNode, Declaration { + var members: NodeArray +} + +external interface ArrayTypeNode : TypeNode { + var elementType: TypeNode +} + +external interface TupleTypeNode : TypeNode { + var elements: NodeArray +} + +external interface NamedTupleMember : TypeNode, JSDocContainer, Declaration { + var dotDotDotToken: Token? + get() = definedExternally + set(value) = definedExternally + var name: Identifier + var questionToken: Token? + get() = definedExternally + set(value) = definedExternally + var type: TypeNode +} + +external interface OptionalTypeNode : TypeNode { + var type: TypeNode +} + +external interface RestTypeNode : TypeNode { + var type: TypeNode +} + +external interface UnionTypeNode : TypeNode { + var types: NodeArray +} + +external interface IntersectionTypeNode : TypeNode { + var types: NodeArray +} + +external interface ConditionalTypeNode : TypeNode { + var checkType: TypeNode + var extendsType: TypeNode + var trueType: TypeNode + var falseType: TypeNode +} + +external interface InferTypeNode : TypeNode { + var typeParameter: TypeParameterDeclaration +} + +external interface ParenthesizedTypeNode : TypeNode { + var type: TypeNode +} + +external interface TypeOperatorNode : TypeNode { + var operator: dynamic /* SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword */ + get() = definedExternally + set(value) = definedExternally + var type: TypeNode +} + +external interface IndexedAccessTypeNode : TypeNode { + var objectType: TypeNode + var indexType: TypeNode +} + +external interface MappedTypeNode : TypeNode, Declaration { + var readonlyToken: dynamic /* ReadonlyToken? | PlusToken? | MinusToken? */ + get() = definedExternally + set(value) = definedExternally + var typeParameter: TypeParameterDeclaration + var nameType: TypeNode? + get() = definedExternally + set(value) = definedExternally + var questionToken: dynamic /* QuestionToken? | PlusToken? | MinusToken? */ + get() = definedExternally + set(value) = definedExternally + var type: TypeNode? + get() = definedExternally + set(value) = definedExternally +} + +external interface LiteralTypeNode : TypeNode { + var literal: dynamic /* NullLiteral | TrueLiteral | FalseLiteral | LiteralExpression | PrefixUnaryExpression */ + get() = definedExternally + set(value) = definedExternally +} + +external interface StringLiteral : LiteralExpression, Declaration + +external interface TemplateLiteralTypeNode : TypeNode { + var head: TemplateHead + var templateSpans: NodeArray +} + +external interface TemplateLiteralTypeSpan : TypeNode { + override var parent: TemplateLiteralTypeNode + var type: TypeNode + var literal: dynamic /* TemplateMiddle | TemplateTail */ + get() = definedExternally + set(value) = definedExternally +} + +external interface Expression : Node { + var _expressionBrand: Any +} + +external interface OmittedExpression : Expression + +external interface PartiallyEmittedExpression : LeftHandSideExpression { + var expression: Expression +} + +external interface UnaryExpression : Expression { + var _unaryExpressionBrand: Any +} + +external interface UpdateExpression : UnaryExpression { + var _updateExpressionBrand: Any +} + +external interface PrefixUnaryExpression : UpdateExpression { + var operator: dynamic /* SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken */ + get() = definedExternally + set(value) = definedExternally + var operand: UnaryExpression +} + +external interface PostfixUnaryExpression : UpdateExpression { + var operand: LeftHandSideExpression + var operator: dynamic /* SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken */ + get() = definedExternally + set(value) = definedExternally +} + +external interface LeftHandSideExpression : UpdateExpression { + var _leftHandSideExpressionBrand: Any +} + +external interface MemberExpression : LeftHandSideExpression { + var _memberExpressionBrand: Any +} + +external interface PrimaryExpression : MemberExpression { + var _primaryExpressionBrand: Any +} + +external interface NullLiteral : PrimaryExpression + +external interface TrueLiteral : PrimaryExpression + +external interface FalseLiteral : PrimaryExpression + +external interface ThisExpression : PrimaryExpression + +external interface SuperExpression : PrimaryExpression + +external interface ImportExpression : PrimaryExpression + +external interface DeleteExpression : UnaryExpression { + var expression: UnaryExpression +} + +external interface TypeOfExpression : UnaryExpression { + var expression: UnaryExpression +} + +external interface VoidExpression : UnaryExpression { + var expression: UnaryExpression +} + +external interface AwaitExpression : UnaryExpression { + var expression: UnaryExpression +} + +external interface YieldExpression : Expression { + var asteriskToken: AsteriskToken? + get() = definedExternally + set(value) = definedExternally + var expression: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface SyntheticExpression : Expression { + var isSpread: Boolean + var type: Type + var tupleNameSource: dynamic /* ParameterDeclaration? | NamedTupleMember? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface BinaryExpression : Expression, Declaration { + var left: Expression + var operatorToken: BinaryOperatorToken + var right: Expression +} + +external interface AssignmentExpression : BinaryExpression { + override var left: LeftHandSideExpression + override var operatorToken: TOperator +} + +external interface ObjectDestructuringAssignment : AssignmentExpression { + override var left: ObjectLiteralExpression +} + +external interface ArrayDestructuringAssignment : AssignmentExpression { + override var left: ArrayLiteralExpression +} + +external interface ConditionalExpression : Expression { + var condition: Expression + var questionToken: QuestionToken + var whenTrue: Expression + var colonToken: ColonToken + var whenFalse: Expression +} + +external interface FunctionExpression : PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer { + override var kind: Any + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally + override var body: FunctionBody +} + +external interface ArrowFunction : Expression, FunctionLikeDeclarationBase, JSDocContainer { + override var kind: Any + var equalsGreaterThanToken: EqualsGreaterThanToken + override var body: dynamic /* FunctionBody | Expression */ + get() = definedExternally + set(value) = definedExternally + override var name: Any +} + +external interface LiteralLikeNode : Node { + var text: String + var isUnterminated: Boolean? + get() = definedExternally + set(value) = definedExternally + var hasExtendedUnicodeEscape: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TemplateLiteralLikeNode : LiteralLikeNode { + var rawText: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface LiteralExpression : LiteralLikeNode, PrimaryExpression { + var _literalExpressionBrand: Any +} + +external interface RegularExpressionLiteral : LiteralExpression + +external interface NoSubstitutionTemplateLiteral : LiteralExpression, TemplateLiteralLikeNode, Declaration + +external enum class TokenFlags { + None /* = 0 */, + Scientific /* = 16 */, + Octal /* = 32 */, + HexSpecifier /* = 64 */, + BinarySpecifier /* = 128 */, + OctalSpecifier /* = 256 */ +} + +external interface NumericLiteral : LiteralExpression, Declaration + +external interface BigIntLiteral : LiteralExpression + +external interface TemplateHead : TemplateLiteralLikeNode { + override var parent: dynamic /* TemplateExpression | TemplateLiteralTypeNode */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TemplateMiddle : TemplateLiteralLikeNode { + override var parent: dynamic /* TemplateSpan | TemplateLiteralTypeSpan */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TemplateTail : TemplateLiteralLikeNode { + override var parent: dynamic /* TemplateSpan | TemplateLiteralTypeSpan */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TemplateExpression : PrimaryExpression { + var head: TemplateHead + var templateSpans: NodeArray +} + +external interface TemplateSpan : Node { + override var parent: TemplateExpression + var expression: Expression + var literal: dynamic /* TemplateMiddle | TemplateTail */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ParenthesizedExpression : PrimaryExpression, JSDocContainer { + var expression: Expression +} + +external interface ArrayLiteralExpression : PrimaryExpression { + var elements: NodeArray +} + +external interface SpreadElement : Expression { + override var parent: dynamic /* ArrayLiteralExpression | CallExpression | NewExpression */ + get() = definedExternally + set(value) = definedExternally + var expression: Expression +} + +external interface ObjectLiteralExpressionBase : PrimaryExpression, Declaration { + var properties: NodeArray +} + +external interface ObjectLiteralExpression : ObjectLiteralExpressionBase + +external interface PropertyAccessExpression : MemberExpression, NamedDeclaration { + var expression: LeftHandSideExpression + var questionDotToken: QuestionDotToken? + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally +} + +external interface PropertyAccessChain : PropertyAccessExpression { + var _optionalChainBrand: Any + override var name: dynamic /* Identifier | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally +} + +external interface SuperPropertyAccessExpression : PropertyAccessExpression { + override var expression: SuperExpression +} + +external interface PropertyAccessEntityNameExpression : PropertyAccessExpression { + var _propertyAccessExpressionLikeQualifiedNameBrand: Any? + get() = definedExternally + set(value) = definedExternally + override var expression: dynamic /* Identifier | PropertyAccessEntityNameExpression */ + get() = definedExternally + set(value) = definedExternally + override var name: Identifier +} + +external interface ElementAccessExpression : MemberExpression { + var expression: LeftHandSideExpression + var questionDotToken: QuestionDotToken? + get() = definedExternally + set(value) = definedExternally + var argumentExpression: Expression +} + +external interface ElementAccessChain : ElementAccessExpression { + var _optionalChainBrand: Any +} + +external interface SuperElementAccessExpression : ElementAccessExpression { + override var expression: SuperExpression +} + +external interface CallExpression : LeftHandSideExpression, Declaration { + var expression: LeftHandSideExpression + var questionDotToken: QuestionDotToken? + get() = definedExternally + set(value) = definedExternally + var typeArguments: NodeArray? + get() = definedExternally + set(value) = definedExternally + var arguments: NodeArray +} + +external interface CallChain : CallExpression { + var _optionalChainBrand: Any +} + +external interface SuperCall : CallExpression { + override var expression: SuperExpression +} + +external interface ImportCall : CallExpression { + override var expression: ImportExpression +} + +external interface ExpressionWithTypeArguments : NodeWithTypeArguments { + override var parent: dynamic /* HeritageClause | JSDocAugmentsTag | JSDocImplementsTag */ + get() = definedExternally + set(value) = definedExternally + var expression: LeftHandSideExpression +} + +external interface NewExpression : PrimaryExpression, Declaration { + var expression: LeftHandSideExpression + var typeArguments: NodeArray? + get() = definedExternally + set(value) = definedExternally + var arguments: NodeArray? + get() = definedExternally + set(value) = definedExternally +} + +external interface TaggedTemplateExpression : MemberExpression { + var tag: LeftHandSideExpression + var typeArguments: NodeArray? + get() = definedExternally + set(value) = definedExternally + var template: dynamic /* TemplateExpression | NoSubstitutionTemplateLiteral */ + get() = definedExternally + set(value) = definedExternally +} + +external interface AsExpression : Expression { + var expression: Expression + var type: TypeNode +} + +external interface TypeAssertion : UnaryExpression { + var type: TypeNode + var expression: UnaryExpression +} + +external interface NonNullExpression : LeftHandSideExpression { + var expression: Expression +} + +external interface NonNullChain : NonNullExpression { + var _optionalChainBrand: Any +} + +external interface MetaProperty : PrimaryExpression { + var keywordToken: dynamic /* SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword */ + get() = definedExternally + set(value) = definedExternally + var name: Identifier +} + +external interface JsxElement : PrimaryExpression { + var openingElement: JsxOpeningElement + var children: NodeArray + var closingElement: JsxClosingElement +} + +external interface JsxTagNamePropertyAccess : PropertyAccessExpression { + override var expression: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JsxAttributes : ObjectLiteralExpressionBase { + override var parent: dynamic /* JsxSelfClosingElement | JsxOpeningElement */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JsxOpeningElement : Expression { + override var parent: JsxElement + var tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */ + get() = definedExternally + set(value) = definedExternally + var typeArguments: NodeArray? + get() = definedExternally + set(value) = definedExternally + var attributes: JsxAttributes +} + +external interface JsxSelfClosingElement : PrimaryExpression { + var tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */ + get() = definedExternally + set(value) = definedExternally + var typeArguments: NodeArray? + get() = definedExternally + set(value) = definedExternally + var attributes: JsxAttributes +} + +external interface JsxFragment : PrimaryExpression { + var openingFragment: JsxOpeningFragment + var children: NodeArray + var closingFragment: JsxClosingFragment +} + +external interface JsxOpeningFragment : Expression { + override var parent: JsxFragment +} + +external interface JsxClosingFragment : Expression { + override var parent: JsxFragment +} + +external interface JsxAttribute : ObjectLiteralElement { + override var parent: JsxAttributes + override var name: Identifier + var initializer: dynamic /* StringLiteral? | JsxExpression? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JsxSpreadAttribute : ObjectLiteralElement { + override var parent: JsxAttributes + var expression: Expression +} + +external interface JsxClosingElement : Node { + override var parent: JsxElement + var tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JsxExpression : Expression { + override var parent: dynamic /* JsxElement | JsxAttribute | JsxSpreadAttribute */ + get() = definedExternally + set(value) = definedExternally + var dotDotDotToken: Token? + get() = definedExternally + set(value) = definedExternally + var expression: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface JsxText : LiteralLikeNode { + override var parent: JsxElement + var containsOnlyTriviaWhiteSpaces: Boolean +} + +external interface Statement : Node, JSDocContainer { + var _statementBrand: Any +} + +external interface NotEmittedStatement : Statement + +external interface CommaListExpression : Expression { + var elements: NodeArray +} + +external interface EmptyStatement : Statement + +external interface DebuggerStatement : Statement + +external interface MissingDeclaration : DeclarationStatement { + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally +} + +external interface Block : Statement { + var statements: NodeArray +} + +external interface VariableStatement : Statement { + var declarationList: VariableDeclarationList +} + +external interface ExpressionStatement : Statement { + var expression: Expression +} + +external interface IfStatement : Statement { + var expression: Expression + var thenStatement: Statement + var elseStatement: Statement? + get() = definedExternally + set(value) = definedExternally +} + +external interface IterationStatement : Statement { + var statement: Statement +} + +external interface DoStatement : IterationStatement { + var expression: Expression +} + +external interface WhileStatement : IterationStatement { + var expression: Expression +} + +external interface ForStatement : IterationStatement { + var initializer: dynamic /* VariableDeclarationList? | Expression? */ + get() = definedExternally + set(value) = definedExternally + var condition: Expression? + get() = definedExternally + set(value) = definedExternally + var incrementor: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface ForInStatement : IterationStatement { + var initializer: dynamic /* VariableDeclarationList | Expression */ + get() = definedExternally + set(value) = definedExternally + var expression: Expression +} + +external interface ForOfStatement : IterationStatement { + var awaitModifier: AwaitKeywordToken? + get() = definedExternally + set(value) = definedExternally + var initializer: dynamic /* VariableDeclarationList | Expression */ + get() = definedExternally + set(value) = definedExternally + var expression: Expression +} + +external interface BreakStatement : Statement { + var label: Identifier? + get() = definedExternally + set(value) = definedExternally +} + +external interface ContinueStatement : Statement { + var label: Identifier? + get() = definedExternally + set(value) = definedExternally +} + +external interface ReturnStatement : Statement { + var expression: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface WithStatement : Statement { + var expression: Expression + var statement: Statement +} + +external interface SwitchStatement : Statement { + var expression: Expression + var caseBlock: CaseBlock + var possiblyExhaustive: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface CaseBlock : Node { + override var parent: SwitchStatement + var clauses: NodeArray +} + +external interface CaseClause : Node { + override var parent: CaseBlock + var expression: Expression + var statements: NodeArray +} + +external interface DefaultClause : Node { + override var parent: CaseBlock + var statements: NodeArray +} + +external interface LabeledStatement : Statement { + var label: Identifier + var statement: Statement +} + +external interface ThrowStatement : Statement { + var expression: Expression +} + +external interface TryStatement : Statement { + var tryBlock: Block + var catchClause: CatchClause? + get() = definedExternally + set(value) = definedExternally + var finallyBlock: Block? + get() = definedExternally + set(value) = definedExternally +} + +external interface CatchClause : Node { + override var parent: TryStatement + var variableDeclaration: VariableDeclaration? + get() = definedExternally + set(value) = definedExternally + var block: Block +} + +external interface ClassLikeDeclarationBase : NamedDeclaration, JSDocContainer { + override var kind: dynamic /* SyntaxKind.ClassDeclaration | SyntaxKind.ClassExpression */ + get() = definedExternally + set(value) = definedExternally + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally + var typeParameters: NodeArray? + get() = definedExternally + set(value) = definedExternally + var heritageClauses: NodeArray? + get() = definedExternally + set(value) = definedExternally + var members: NodeArray +} + +external interface ClassDeclaration : ClassLikeDeclarationBase, DeclarationStatement { + override var kind: Any + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally +} + +external interface ClassExpression : ClassLikeDeclarationBase, PrimaryExpression { + override var kind: Any +} + +external interface ClassElement : NamedDeclaration { + var _classElementBrand: Any + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeElement : NamedDeclaration { + var _typeElementBrand: Any + override var name: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */ + get() = definedExternally + set(value) = definedExternally + var questionToken: QuestionToken? + get() = definedExternally + set(value) = definedExternally +} + +external interface InterfaceDeclaration : DeclarationStatement, JSDocContainer { + override var name: Identifier + var typeParameters: NodeArray? + get() = definedExternally + set(value) = definedExternally + var heritageClauses: NodeArray? + get() = definedExternally + set(value) = definedExternally + var members: NodeArray +} + +external interface HeritageClause : Node { + override var parent: dynamic /* InterfaceDeclaration | ClassDeclaration | ClassExpression */ + get() = definedExternally + set(value) = definedExternally + var token: dynamic /* SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword */ + get() = definedExternally + set(value) = definedExternally + var types: NodeArray +} + +external interface TypeAliasDeclaration : DeclarationStatement, JSDocContainer { + override var name: Identifier + var typeParameters: NodeArray? + get() = definedExternally + set(value) = definedExternally + var type: TypeNode +} + +external interface EnumMember : NamedDeclaration, JSDocContainer { + override var parent: EnumDeclaration + override var name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */ + get() = definedExternally + set(value) = definedExternally + var initializer: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface EnumDeclaration : DeclarationStatement, JSDocContainer { + override var name: Identifier + var members: NodeArray +} + +external interface ModuleDeclaration : DeclarationStatement, JSDocContainer { + override var parent: dynamic /* ModuleBlock | NamespaceDeclaration | Identifier | JSDocNamespaceDeclaration | SourceFile */ + get() = definedExternally + set(value) = definedExternally + override var name: dynamic /* Identifier | StringLiteral */ + get() = definedExternally + set(value) = definedExternally + var body: dynamic /* ModuleBlock? | NamespaceDeclaration? | Identifier? | JSDocNamespaceDeclaration? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface NamespaceDeclaration : ModuleDeclaration { + override var name: Identifier + override var body: dynamic /* ModuleBlock | NamespaceDeclaration */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocNamespaceDeclaration : ModuleDeclaration { + override var name: Identifier + override var body: dynamic /* Identifier? | JSDocNamespaceDeclaration? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ModuleBlock : Node, Statement { + override var parent: ModuleDeclaration + var statements: NodeArray +} + +external interface ImportEqualsDeclaration : DeclarationStatement, JSDocContainer { + override var parent: dynamic /* SourceFile | ModuleBlock */ + get() = definedExternally + set(value) = definedExternally + override var name: Identifier + var isTypeOnly: Boolean + var moduleReference: dynamic /* Identifier | QualifiedName | ExternalModuleReference */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ExternalModuleReference : Node { + override var parent: ImportEqualsDeclaration + var expression: Expression +} + +external interface ImportDeclaration : Statement { + override var parent: dynamic /* SourceFile | ModuleBlock */ + get() = definedExternally + set(value) = definedExternally + var importClause: ImportClause? + get() = definedExternally + set(value) = definedExternally + var moduleSpecifier: Expression +} + +external interface ImportClause : NamedDeclaration { + override var parent: ImportDeclaration + var isTypeOnly: Boolean + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally + var namedBindings: dynamic /* NamespaceImport? | NamedImports? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface NamespaceImport : NamedDeclaration { + override var parent: ImportClause + override var name: Identifier +} + +external interface NamespaceExport : NamedDeclaration { + override var parent: ExportDeclaration + override var name: Identifier +} + +external interface NamespaceExportDeclaration : DeclarationStatement, JSDocContainer { + override var name: Identifier +} + +external interface ExportDeclaration : DeclarationStatement, JSDocContainer { + override var parent: dynamic /* SourceFile | ModuleBlock */ + get() = definedExternally + set(value) = definedExternally + var isTypeOnly: Boolean + var exportClause: dynamic /* NamespaceExport? | NamedExports? */ + get() = definedExternally + set(value) = definedExternally + var moduleSpecifier: Expression? + get() = definedExternally + set(value) = definedExternally +} + +external interface NamedImports : Node { + override var parent: ImportClause + var elements: NodeArray +} + +external interface NamedExports : Node { + override var parent: ExportDeclaration + var elements: NodeArray +} + +external interface ImportSpecifier : NamedDeclaration { + override var parent: NamedImports + var propertyName: Identifier? + get() = definedExternally + set(value) = definedExternally + override var name: Identifier +} + +external interface ExportSpecifier : NamedDeclaration { + override var parent: NamedExports + var propertyName: Identifier? + get() = definedExternally + set(value) = definedExternally + override var name: Identifier +} + +external interface ExportAssignment : DeclarationStatement, JSDocContainer { + override var parent: SourceFile + var isExportEquals: Boolean? + get() = definedExternally + set(value) = definedExternally + var expression: Expression +} + +external interface FileReference : TextRange { + var fileName: String +} + +external interface CheckJsDirective : TextRange { + var enabled: Boolean +} + +external interface CommentRange : TextRange { + var hasTrailingNewLine: Boolean? + get() = definedExternally + set(value) = definedExternally + var kind: dynamic /* SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia */ + get() = definedExternally + set(value) = definedExternally +} + +external interface SynthesizedComment : CommentRange { + var text: String + var hasLeadingNewline: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocTypeExpression : TypeNode { + var type: TypeNode +} + +external interface JSDocNameReference : Node { + var name: dynamic /* Identifier | QualifiedName | JSDocMemberName */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocMemberName : Node { + var left: dynamic /* Identifier | QualifiedName | JSDocMemberName */ + get() = definedExternally + set(value) = definedExternally + var right: Identifier +} + +external interface JSDocType : TypeNode { + var _jsDocTypeBrand: Any +} + +external interface JSDocAllType : JSDocType + +external interface JSDocUnknownType : JSDocType + +external interface JSDocNonNullableType : JSDocType { + var type: TypeNode +} + +external interface JSDocNullableType : JSDocType { + var type: TypeNode +} + +external interface JSDocOptionalType : JSDocType { + var type: TypeNode +} + +external interface JSDocFunctionType : JSDocType, SignatureDeclarationBase { + override var kind: Any +} + +external interface JSDocVariadicType : JSDocType { + var type: TypeNode +} + +external interface JSDocNamepathType : JSDocType { + var type: TypeNode +} + +external interface JSDoc : Node { + override var parent: dynamic /* ParameterDeclaration | CallSignatureDeclaration | ClassStaticBlockDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | EmptyStatement | DebuggerStatement | Block | VariableStatement | ExpressionStatement | IfStatement | DoStatement | WhileStatement | ForStatement | ForInStatement | ForOfStatement | BreakStatement | ContinueStatement | ReturnStatement | WithStatement | SwitchStatement | LabeledStatement | ThrowStatement | TryStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | VariableDeclaration | PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ClassDeclaration | ClassExpression | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportAssignment | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | NamedTupleMember | Token & JSDocContainer */ + get() = definedExternally + set(value) = definedExternally + var tags: NodeArray? + get() = definedExternally + set(value) = definedExternally + var comment: dynamic /* String? | NodeArray? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocTag : Node { + override var parent: dynamic /* JSDoc | JSDocTypeLiteral */ + get() = definedExternally + set(value) = definedExternally + var tagName: Identifier + var comment: dynamic /* String? | NodeArray? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocLink : Node { + var name: dynamic /* Identifier? | QualifiedName? | JSDocMemberName? */ + get() = definedExternally + set(value) = definedExternally + var text: String +} + +external interface JSDocLinkCode : Node { + var name: dynamic /* Identifier? | QualifiedName? | JSDocMemberName? */ + get() = definedExternally + set(value) = definedExternally + var text: String +} + +external interface JSDocLinkPlain : Node { + var name: dynamic /* Identifier? | QualifiedName? | JSDocMemberName? */ + get() = definedExternally + set(value) = definedExternally + var text: String +} + +external interface JSDocText : Node { + var text: String +} + +external interface JSDocUnknownTag : JSDocTag + +external interface `T$21` { + var expression: dynamic /* Identifier | PropertyAccessEntityNameExpression */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocAugmentsTag : JSDocTag { + var `class`: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */ +} + +external interface JSDocImplementsTag : JSDocTag { + var `class`: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */ +} + +external interface JSDocAuthorTag : JSDocTag + +external interface JSDocDeprecatedTag : JSDocTag + +external interface JSDocClassTag : JSDocTag + +external interface JSDocPublicTag : JSDocTag + +external interface JSDocPrivateTag : JSDocTag + +external interface JSDocProtectedTag : JSDocTag + +external interface JSDocReadonlyTag : JSDocTag + +external interface JSDocOverrideTag : JSDocTag + +external interface JSDocEnumTag : JSDocTag, Declaration { + override var parent: JSDoc + var typeExpression: JSDocTypeExpression +} + +external interface JSDocThisTag : JSDocTag { + var typeExpression: JSDocTypeExpression +} + +external interface JSDocTemplateTag : JSDocTag { + var constraint: JSDocTypeExpression? + var typeParameters: NodeArray +} + +external interface JSDocSeeTag : JSDocTag { + var name: JSDocNameReference? + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocReturnTag : JSDocTag { + var typeExpression: JSDocTypeExpression? + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocTypeTag : JSDocTag { + var typeExpression: JSDocTypeExpression +} + +external interface JSDocTypedefTag : JSDocTag, NamedDeclaration { + override var parent: JSDoc + var fullName: dynamic /* JSDocNamespaceDeclaration? | Identifier? */ + get() = definedExternally + set(value) = definedExternally + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally + var typeExpression: dynamic /* JSDocTypeExpression? | JSDocTypeLiteral? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface JSDocCallbackTag : JSDocTag, NamedDeclaration { + override var parent: JSDoc + var fullName: dynamic /* JSDocNamespaceDeclaration? | Identifier? */ + get() = definedExternally + set(value) = definedExternally + override var name: Identifier? + get() = definedExternally + set(value) = definedExternally + var typeExpression: JSDocSignature +} + +external interface JSDocSignature : JSDocType, Declaration { + var typeParameters: Array? + get() = definedExternally + set(value) = definedExternally + var parameters: Array + var type: JSDocReturnTag? +} + +external interface JSDocPropertyLikeTag : JSDocTag, Declaration { + override var parent: JSDoc + var name: dynamic /* Identifier | QualifiedName */ + get() = definedExternally + set(value) = definedExternally + var typeExpression: JSDocTypeExpression? + get() = definedExternally + set(value) = definedExternally + var isNameFirst: Boolean + var isBracketed: Boolean +} + +external interface JSDocPropertyTag : JSDocPropertyLikeTag + +external interface JSDocParameterTag : JSDocPropertyLikeTag + +external interface JSDocTypeLiteral : JSDocType { + var jsDocPropertyTags: Array? + get() = definedExternally + set(value) = definedExternally + var isArrayType: Boolean +} + +external enum class FlowFlags { + Unreachable /* = 1 */, + Start /* = 2 */, + BranchLabel /* = 4 */, + LoopLabel /* = 8 */, + Assignment /* = 16 */, + TrueCondition /* = 32 */, + FalseCondition /* = 64 */, + SwitchClause /* = 128 */, + ArrayMutation /* = 256 */, + Call /* = 512 */, + ReduceLabel /* = 1024 */, + Referenced /* = 2048 */, + Shared /* = 4096 */, + Label /* = 12 */, + Condition /* = 96 */ +} + +external interface FlowNodeBase { + var flags: FlowFlags + var id: Number? + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowStart : FlowNodeBase { + var node: dynamic /* FunctionExpression? | ArrowFunction? | MethodDeclaration? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowLabel : FlowNodeBase { + var antecedents: Array? +} + +external interface FlowAssignment : FlowNodeBase { + var node: dynamic /* Expression | VariableDeclaration | BindingElement */ + get() = definedExternally + set(value) = definedExternally + var antecedent: dynamic /* FlowStart | FlowLabel | FlowAssignment | FlowCall | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowReduceLabel */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowCall : FlowNodeBase { + var node: CallExpression + var antecedent: dynamic /* FlowStart | FlowLabel | FlowAssignment | FlowCall | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowReduceLabel */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowCondition : FlowNodeBase { + var node: Expression + var antecedent: dynamic /* FlowStart | FlowLabel | FlowAssignment | FlowCall | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowReduceLabel */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowSwitchClause : FlowNodeBase { + var switchStatement: SwitchStatement + var clauseStart: Number + var clauseEnd: Number + var antecedent: dynamic /* FlowStart | FlowLabel | FlowAssignment | FlowCall | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowReduceLabel */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowArrayMutation : FlowNodeBase { + var node: dynamic /* CallExpression | BinaryExpression */ + get() = definedExternally + set(value) = definedExternally + var antecedent: dynamic /* FlowStart | FlowLabel | FlowAssignment | FlowCall | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowReduceLabel */ + get() = definedExternally + set(value) = definedExternally +} + +external interface FlowReduceLabel : FlowNodeBase { + var target: FlowLabel + var antecedents: Array + var antecedent: dynamic /* FlowStart | FlowLabel | FlowAssignment | FlowCall | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowReduceLabel */ + get() = definedExternally + set(value) = definedExternally +} + +external interface IncompleteType { + var flags: TypeFlags + var type: Type +} + +external interface AmdDependency { + var path: String + var name: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface SourceFile : Declaration { + fun getLineAndCharacterOfPosition(pos: Number): LineAndCharacter + fun getLineEndOfPosition(pos: Number): Number + fun getLineStarts(): Array + fun getPositionOfLineAndCharacter(line: Number, character: Number): Number + fun update(newText: String, textChangeRange: TextChangeRange): SourceFile + var statements: NodeArray + var endOfFileToken: Token + var fileName: String + var text: String + var amdDependencies: Array + var moduleName: String? + get() = definedExternally + set(value) = definedExternally + var referencedFiles: Array + var typeReferenceDirectives: Array + var libReferenceDirectives: Array + var languageVariant: LanguageVariant + var isDeclarationFile: Boolean + var hasNoDefaultLib: Boolean + var languageVersion: ScriptTarget +} + +external interface Bundle : Node { + var prepends: Array + var sourceFiles: Array +} + +external interface InputFiles : Node { + var javascriptPath: String? + get() = definedExternally + set(value) = definedExternally + var javascriptText: String + var javascriptMapPath: String? + get() = definedExternally + set(value) = definedExternally + var javascriptMapText: String? + get() = definedExternally + set(value) = definedExternally + var declarationPath: String? + get() = definedExternally + set(value) = definedExternally + var declarationText: String + var declarationMapPath: String? + get() = definedExternally + set(value) = definedExternally + var declarationMapText: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface UnparsedSource : Node { + var fileName: String + var text: String + var prologues: Array + var helpers: Array? + var referencedFiles: Array + var typeReferenceDirectives: Array? + var libReferenceDirectives: Array + var hasNoDefaultLib: Boolean? + get() = definedExternally + set(value) = definedExternally + var sourceMapPath: String? + get() = definedExternally + set(value) = definedExternally + var sourceMapText: String? + get() = definedExternally + set(value) = definedExternally + var syntheticReferences: Array? + get() = definedExternally + set(value) = definedExternally + var texts: Array +} + +external interface UnparsedSection : Node { + override var kind: SyntaxKind + override var parent: UnparsedSource + var data: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface UnparsedPrologue : UnparsedSection { + override var parent: UnparsedSource +} + +external interface UnparsedPrepend : UnparsedSection { + override var parent: UnparsedSource + var texts: Array +} + +external interface UnparsedTextLike : UnparsedSection { + override var kind: dynamic /* SyntaxKind.UnparsedText | SyntaxKind.UnparsedInternalText */ + get() = definedExternally + set(value) = definedExternally + override var parent: UnparsedSource +} + +external interface UnparsedSyntheticReference : UnparsedSection { + override var parent: UnparsedSource +} + +external interface JsonSourceFile : SourceFile { + override var statements: NodeArray +} + +external interface TsConfigSourceFile : JsonSourceFile { + var extendedSourceFiles: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface JsonMinusNumericLiteral : PrefixUnaryExpression { + override var kind: Any + override var operator: Any + override var operand: NumericLiteral +} + +external interface JsonObjectExpressionStatement : ExpressionStatement { + override var expression: dynamic /* ObjectLiteralExpression | ArrayLiteralExpression | JsonMinusNumericLiteral | NumericLiteral | StringLiteral | TrueLiteral | FalseLiteral | NullLiteral */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ScriptReferenceHost { + fun getCompilerOptions(): CompilerOptions + fun getSourceFile(fileName: String): SourceFile? + fun getSourceFileByPath(path: String /* String & `T$3` */): SourceFile? + fun getCurrentDirectory(): String +} + +external interface ParseConfigHost { + var useCaseSensitiveFileNames: Boolean + fun readDirectory(rootDir: String, extensions: Array, excludes: Array?, includes: Array, depth: Number = definedExternally): Array + fun fileExists(path: String): Boolean + fun readFile(path: String): String? + val trace: ((s: String) -> Unit)? +} + +external open class OperationCanceledException + +external interface CancellationToken { + fun isCancellationRequested(): Boolean + fun throwIfCancellationRequested() +} + +external interface Program : ScriptReferenceHost { + override fun getCurrentDirectory(): String + fun getRootFileNames(): Array + fun getSourceFiles(): Array + fun emit(targetSourceFile: SourceFile = definedExternally, writeFile: WriteFileCallback = definedExternally, cancellationToken: CancellationToken = definedExternally, emitOnlyDtsFiles: Boolean = definedExternally, customTransformers: CustomTransformers = definedExternally): EmitResult + fun getOptionsDiagnostics(cancellationToken: CancellationToken = definedExternally): Array + fun getGlobalDiagnostics(cancellationToken: CancellationToken = definedExternally): Array + fun getSyntacticDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun getSemanticDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun getDeclarationDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun getConfigFileParsingDiagnostics(): Array + fun getTypeChecker(): TypeChecker + fun getNodeCount(): Number + fun getIdentifierCount(): Number + fun getSymbolCount(): Number + fun getTypeCount(): Number + fun getInstantiationCount(): Number + fun getRelationCacheSizes(): `T$6` + fun isSourceFileFromExternalLibrary(file: SourceFile): Boolean + fun isSourceFileDefaultLibrary(file: SourceFile): Boolean + fun getProjectReferences(): Array? + fun getResolvedProjectReferences(): Array? +} + +external interface ResolvedProjectReference { + var commandLine: ParsedCommandLine + var sourceFile: SourceFile + var references: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface CustomTransformer { + fun transformSourceFile(node: SourceFile): SourceFile + fun transformBundle(node: Bundle): Bundle +} + +external interface CustomTransformers { + var before: Array | CustomTransformerFactory */>? + get() = definedExternally + set(value) = definedExternally + var after: Array | CustomTransformerFactory */>? + get() = definedExternally + set(value) = definedExternally + var afterDeclarations: Array | CustomTransformerFactory */>? + get() = definedExternally + set(value) = definedExternally +} + +external interface SourceMapSpan { + var emittedLine: Number + var emittedColumn: Number + var sourceLine: Number + var sourceColumn: Number + var nameIndex: Number? + get() = definedExternally + set(value) = definedExternally + var sourceIndex: Number +} + +external enum class ExitStatus { + Success /* = 0 */, + DiagnosticsPresent_OutputsSkipped /* = 1 */, + DiagnosticsPresent_OutputsGenerated /* = 2 */, + InvalidProject_OutputsSkipped /* = 3 */, + ProjectReferenceCycle_OutputsSkipped /* = 4 */, + ProjectReferenceCycle_OutputsSkupped /* = 4 */ +} + +external interface EmitResult { + var emitSkipped: Boolean + var diagnostics: Array + var emittedFiles: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface `T$22` { + var typeArguments: NodeArray? + get() = definedExternally + set(value) = definedExternally +} + +external interface TypeChecker { + fun getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type + fun getDeclaredTypeOfSymbol(symbol: Symbol): Type + fun getPropertiesOfType(type: Type): Array + fun getPropertyOfType(type: Type, propertyName: String): Symbol? + fun getPrivateIdentifierPropertyOfType(leftType: Type, name: String, location: Node): Symbol? + fun getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo? + fun getIndexInfosOfType(type: Type): Array + fun getSignaturesOfType(type: Type, kind: SignatureKind): Array + fun getIndexTypeOfType(type: Type, kind: IndexKind): Type? + fun getBaseTypes(type: InterfaceType): Array + fun getBaseTypeOfLiteralType(type: Type): Type + fun getWidenedType(type: Type): Type + fun getReturnTypeOfSignature(signature: Signature): Type + fun getNullableType(type: Type, flags: TypeFlags): Type + fun getNonNullableType(type: Type): Type + fun getTypeArguments(type: TypeReference): Array + fun typeToTypeNode(type: Type, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): TypeNode? + fun signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): dynamic /* CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | FunctionExpression | ArrowFunction */ + fun indexInfoToIndexSignatureDeclaration(indexInfo: IndexInfo, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): IndexSignatureDeclaration? + fun symbolToEntityName(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): dynamic /* Identifier? | QualifiedName? */ + fun symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): Expression? + fun symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): NodeArray? + fun symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): ParameterDeclaration? + fun typeParameterToDeclaration(parameter: TypeParameter, enclosingDeclaration: Node?, flags: NodeBuilderFlags?): TypeParameterDeclaration? + fun getSymbolsInScope(location: Node, meaning: SymbolFlags): Array + fun getSymbolAtLocation(node: Node): Symbol? + fun getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: String): Array + fun getShorthandAssignmentValueSymbol(location: Node?): Symbol? + fun getExportSpecifierLocalTargetSymbol(location: ExportSpecifier): Symbol? + fun getExportSpecifierLocalTargetSymbol(location: Identifier): Symbol? + fun getExportSymbolOfSymbol(symbol: Symbol): Symbol + fun getPropertySymbolOfDestructuringAssignment(location: Identifier): Symbol? + fun getTypeOfAssignmentPattern(pattern: ObjectLiteralExpression): Type + fun getTypeOfAssignmentPattern(pattern: ArrayLiteralExpression): Type + fun getTypeAtLocation(node: Node): Type + fun getTypeFromTypeNode(node: TypeNode): Type + fun signatureToString(signature: Signature, enclosingDeclaration: Node = definedExternally, flags: TypeFormatFlags = definedExternally, kind: SignatureKind = definedExternally): String + fun typeToString(type: Type, enclosingDeclaration: Node = definedExternally, flags: TypeFormatFlags = definedExternally): String + fun symbolToString(symbol: Symbol, enclosingDeclaration: Node = definedExternally, meaning: SymbolFlags = definedExternally, flags: SymbolFormatFlags = definedExternally): String + fun typePredicateToString(predicate: ThisTypePredicate, enclosingDeclaration: Node = definedExternally, flags: TypeFormatFlags = definedExternally): String + fun typePredicateToString(predicate: ThisTypePredicate): String + fun typePredicateToString(predicate: ThisTypePredicate, enclosingDeclaration: Node = definedExternally): String + fun typePredicateToString(predicate: IdentifierTypePredicate, enclosingDeclaration: Node = definedExternally, flags: TypeFormatFlags = definedExternally): String + fun typePredicateToString(predicate: IdentifierTypePredicate): String + fun typePredicateToString(predicate: IdentifierTypePredicate, enclosingDeclaration: Node = definedExternally): String + fun typePredicateToString(predicate: AssertsThisTypePredicate, enclosingDeclaration: Node = definedExternally, flags: TypeFormatFlags = definedExternally): String + fun typePredicateToString(predicate: AssertsThisTypePredicate): String + fun typePredicateToString(predicate: AssertsThisTypePredicate, enclosingDeclaration: Node = definedExternally): String + fun typePredicateToString(predicate: AssertsIdentifierTypePredicate, enclosingDeclaration: Node = definedExternally, flags: TypeFormatFlags = definedExternally): String + fun typePredicateToString(predicate: AssertsIdentifierTypePredicate): String + fun typePredicateToString(predicate: AssertsIdentifierTypePredicate, enclosingDeclaration: Node = definedExternally): String + fun getFullyQualifiedName(symbol: Symbol): String + fun getAugmentedPropertiesOfType(type: Type): Array + fun getRootSymbols(symbol: Symbol): Array + fun getSymbolOfExpando(node: Node, allowDeclaration: Boolean): Symbol? + fun getContextualType(node: Expression): Type? + fun getResolvedSignature(node: CallExpression, candidatesOutArray: Array = definedExternally, argumentCount: Number = definedExternally): Signature? + fun getResolvedSignature(node: CallExpression): Signature? + fun getResolvedSignature(node: CallExpression, candidatesOutArray: Array = definedExternally): Signature? + fun getResolvedSignature(node: NewExpression, candidatesOutArray: Array = definedExternally, argumentCount: Number = definedExternally): Signature? + fun getResolvedSignature(node: NewExpression): Signature? + fun getResolvedSignature(node: NewExpression, candidatesOutArray: Array = definedExternally): Signature? + fun getResolvedSignature(node: TaggedTemplateExpression, candidatesOutArray: Array = definedExternally, argumentCount: Number = definedExternally): Signature? + fun getResolvedSignature(node: TaggedTemplateExpression): Signature? + fun getResolvedSignature(node: TaggedTemplateExpression, candidatesOutArray: Array = definedExternally): Signature? + fun getResolvedSignature(node: Decorator, candidatesOutArray: Array = definedExternally, argumentCount: Number = definedExternally): Signature? + fun getResolvedSignature(node: Decorator): Signature? + fun getResolvedSignature(node: Decorator, candidatesOutArray: Array = definedExternally): Signature? + fun getResolvedSignature(node: JsxSelfClosingElement, candidatesOutArray: Array = definedExternally, argumentCount: Number = definedExternally): Signature? + fun getResolvedSignature(node: JsxSelfClosingElement): Signature? + fun getResolvedSignature(node: JsxSelfClosingElement, candidatesOutArray: Array = definedExternally): Signature? + fun getResolvedSignature(node: JsxOpeningElement, candidatesOutArray: Array = definedExternally, argumentCount: Number = definedExternally): Signature? + fun getResolvedSignature(node: JsxOpeningElement): Signature? + fun getResolvedSignature(node: JsxOpeningElement, candidatesOutArray: Array = definedExternally): Signature? + fun getSignatureFromDeclaration(declaration: CallSignatureDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: ConstructSignatureDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: MethodSignature): Signature? + fun getSignatureFromDeclaration(declaration: IndexSignatureDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: FunctionTypeNode): Signature? + fun getSignatureFromDeclaration(declaration: ConstructorTypeNode): Signature? + fun getSignatureFromDeclaration(declaration: JSDocFunctionType): Signature? + fun getSignatureFromDeclaration(declaration: FunctionDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: MethodDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: ConstructorDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: GetAccessorDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: SetAccessorDeclaration): Signature? + fun getSignatureFromDeclaration(declaration: FunctionExpression): Signature? + fun getSignatureFromDeclaration(declaration: ArrowFunction): Signature? + fun isImplementationOfOverload(node: CallSignatureDeclaration): Boolean? + fun isImplementationOfOverload(node: ConstructSignatureDeclaration): Boolean? + fun isImplementationOfOverload(node: MethodSignature): Boolean? + fun isImplementationOfOverload(node: IndexSignatureDeclaration): Boolean? + fun isImplementationOfOverload(node: FunctionTypeNode): Boolean? + fun isImplementationOfOverload(node: ConstructorTypeNode): Boolean? + fun isImplementationOfOverload(node: JSDocFunctionType): Boolean? + fun isImplementationOfOverload(node: FunctionDeclaration): Boolean? + fun isImplementationOfOverload(node: MethodDeclaration): Boolean? + fun isImplementationOfOverload(node: ConstructorDeclaration): Boolean? + fun isImplementationOfOverload(node: GetAccessorDeclaration): Boolean? + fun isImplementationOfOverload(node: SetAccessorDeclaration): Boolean? + fun isImplementationOfOverload(node: FunctionExpression): Boolean? + fun isImplementationOfOverload(node: ArrowFunction): Boolean? + fun isUndefinedSymbol(symbol: Symbol): Boolean + fun isArgumentsSymbol(symbol: Symbol): Boolean + fun isUnknownSymbol(symbol: Symbol): Boolean + fun getConstantValue(node: EnumMember): dynamic /* String? | Number? */ + fun getConstantValue(node: PropertyAccessExpression): dynamic /* String? | Number? */ + fun getConstantValue(node: ElementAccessExpression): dynamic /* String? | Number? */ + fun isValidPropertyAccess(node: PropertyAccessExpression, propertyName: String): Boolean + fun isValidPropertyAccess(node: QualifiedName, propertyName: String): Boolean + fun isValidPropertyAccess(node: ImportTypeNode, propertyName: String): Boolean + fun getAliasedSymbol(symbol: Symbol): Symbol + fun getImmediateAliasedSymbol(symbol: Symbol): Symbol? + fun getExportsOfModule(moduleSymbol: Symbol): Array + fun getJsxIntrinsicTagNamesAt(location: Node): Array + fun isOptionalParameter(node: ParameterDeclaration): Boolean + fun getAmbientModules(): Array + fun tryGetMemberInModuleExports(memberName: String, moduleSymbol: Symbol): Symbol? + fun getApparentType(type: Type): Type + fun getBaseConstraintOfType(type: Type): Type? + fun getDefaultFromTypeParameter(type: Type): Type? + fun runWithCancellationToken(token: CancellationToken, cb: (checker: TypeChecker) -> T): T +} + +external enum class NodeBuilderFlags { + None /* = 0 */, + NoTruncation /* = 1 */, + WriteArrayAsGenericType /* = 2 */, + GenerateNamesForShadowedTypeParams /* = 4 */, + UseStructuralFallback /* = 8 */, + ForbidIndexedAccessSymbolReferences /* = 16 */, + WriteTypeArgumentsOfSignature /* = 32 */, + UseFullyQualifiedType /* = 64 */, + UseOnlyExternalAliasing /* = 128 */, + SuppressAnyReturnType /* = 256 */, + WriteTypeParametersInQualifiedName /* = 512 */, + MultilineObjectLiterals /* = 1024 */, + WriteClassExpressionAsTypeLiteral /* = 2048 */, + UseTypeOfFunction /* = 4096 */, + OmitParameterModifiers /* = 8192 */, + UseAliasDefinedOutsideCurrentScope /* = 16384 */, + UseSingleQuotesForStringLiteralType /* = 268435456 */, + NoTypeReduction /* = 536870912 */, + NoUndefinedOptionalParameterType /* = 1073741824 */, + AllowThisInObjectLiteral /* = 32768 */, + AllowQualifiedNameInPlaceOfIdentifier /* = 65536 */, + AllowQualifedNameInPlaceOfIdentifier /* = 65536 */, + AllowAnonymousIdentifier /* = 131072 */, + AllowEmptyUnionOrIntersection /* = 262144 */, + AllowEmptyTuple /* = 524288 */, + AllowUniqueESSymbolType /* = 1048576 */, + AllowEmptyIndexInfoType /* = 2097152 */, + AllowNodeModulesRelativePaths /* = 67108864 */, + IgnoreErrors /* = 70221824 */, + InObjectTypeLiteral /* = 4194304 */, + InTypeAlias /* = 8388608 */, + InInitialEntityName /* = 16777216 */ +} + +external enum class TypeFormatFlags { + None /* = 0 */, + NoTruncation /* = 1 */, + WriteArrayAsGenericType /* = 2 */, + UseStructuralFallback /* = 8 */, + WriteTypeArgumentsOfSignature /* = 32 */, + UseFullyQualifiedType /* = 64 */, + SuppressAnyReturnType /* = 256 */, + MultilineObjectLiterals /* = 1024 */, + WriteClassExpressionAsTypeLiteral /* = 2048 */, + UseTypeOfFunction /* = 4096 */, + OmitParameterModifiers /* = 8192 */, + UseAliasDefinedOutsideCurrentScope /* = 16384 */, + UseSingleQuotesForStringLiteralType /* = 268435456 */, + NoTypeReduction /* = 536870912 */, + AllowUniqueESSymbolType /* = 1048576 */, + AddUndefined /* = 131072 */, + WriteArrowStyleSignature /* = 262144 */, + InArrayType /* = 524288 */, + InElementType /* = 2097152 */, + InFirstTypeArgument /* = 4194304 */, + InTypeAlias /* = 8388608 */, + WriteOwnNameForAnyLike /* = 0 */, + NodeBuilderFlagsMask /* = 814775659 */ +} + +external enum class SymbolFormatFlags { + None /* = 0 */, + WriteTypeParametersOrArguments /* = 1 */, + UseOnlyExternalAliasing /* = 2 */, + AllowAnyNodeKind /* = 4 */, + UseAliasDefinedOutsideCurrentScope /* = 8 */ +} + +external enum class TypePredicateKind { + This /* = 0 */, + Identifier /* = 1 */, + AssertsThis /* = 2 */, + AssertsIdentifier /* = 3 */ +} + +external interface TypePredicateBase { + var kind: TypePredicateKind + var type: Type? +} + +external interface ThisTypePredicate : TypePredicateBase { + var parameterName: Any? + var parameterIndex: Any? +} + +external interface IdentifierTypePredicate : TypePredicateBase { + var parameterName: String + var parameterIndex: Number +} + +external interface AssertsThisTypePredicate : TypePredicateBase { + var parameterName: Any? + var parameterIndex: Any? + override var type: Type? +} + +external interface AssertsIdentifierTypePredicate : TypePredicateBase { + var parameterName: String + var parameterIndex: Number + override var type: Type? +} + +external enum class SymbolFlags { + None /* = 0 */, + FunctionScopedVariable /* = 1 */, + BlockScopedVariable /* = 2 */, + Property /* = 4 */, + EnumMember /* = 8 */, + Function /* = 16 */, + Class /* = 32 */, + Interface /* = 64 */, + ConstEnum /* = 128 */, + RegularEnum /* = 256 */, + ValueModule /* = 512 */, + NamespaceModule /* = 1024 */, + TypeLiteral /* = 2048 */, + ObjectLiteral /* = 4096 */, + Method /* = 8192 */, + Constructor /* = 16384 */, + GetAccessor /* = 32768 */, + SetAccessor /* = 65536 */, + Signature /* = 131072 */, + TypeParameter /* = 262144 */, + TypeAlias /* = 524288 */, + ExportValue /* = 1048576 */, + Alias /* = 2097152 */, + Prototype /* = 4194304 */, + ExportStar /* = 8388608 */, + Optional /* = 16777216 */, + Transient /* = 33554432 */, + Assignment /* = 67108864 */, + ModuleExports /* = 134217728 */, + Enum /* = 384 */, + Variable /* = 3 */, + Value /* = 111551 */, + Type /* = 788968 */, + Namespace /* = 1920 */, + Module /* = 1536 */, + Accessor /* = 98304 */, + FunctionScopedVariableExcludes /* = 111550 */, + BlockScopedVariableExcludes /* = 111551 */, + ParameterExcludes /* = 111551 */, + PropertyExcludes /* = 0 */, + EnumMemberExcludes /* = 900095 */, + FunctionExcludes /* = 110991 */, + ClassExcludes /* = 899503 */, + InterfaceExcludes /* = 788872 */, + RegularEnumExcludes /* = 899327 */, + ConstEnumExcludes /* = 899967 */, + ValueModuleExcludes /* = 110735 */, + NamespaceModuleExcludes /* = 0 */, + MethodExcludes /* = 103359 */, + GetAccessorExcludes /* = 46015 */, + SetAccessorExcludes /* = 78783 */, + TypeParameterExcludes /* = 526824 */, + TypeAliasExcludes /* = 788968 */, + AliasExcludes /* = 2097152 */, + ModuleMember /* = 2623475 */, + ExportHasLocal /* = 944 */, + BlockScoped /* = 418 */, + PropertyOrAccessor /* = 98308 */, + ClassMember /* = 106500 */ +} + +external interface Symbol { + var name: String + fun getFlags(): SymbolFlags + fun getEscapedName(): dynamic /* String & `T$8` | Unit & `T$8` | InternalSymbolName */ + fun getName(): String + fun getDeclarations(): Array? + fun getDocumentationComment(typeChecker: TypeChecker?): Array + fun getJsDocTags(checker: TypeChecker = definedExternally): Array + var flags: SymbolFlags + var escapedName: dynamic /* String & `T$8` | Unit & `T$8` | InternalSymbolName */ + get() = definedExternally + set(value) = definedExternally + var declarations: Array? + get() = definedExternally + set(value) = definedExternally + var valueDeclaration: Declaration? + get() = definedExternally + set(value) = definedExternally + var members: SymbolTable? + get() = definedExternally + set(value) = definedExternally + var exports: SymbolTable? + get() = definedExternally + set(value) = definedExternally + var globalExports: SymbolTable? + get() = definedExternally + set(value) = definedExternally +} + +external enum class InternalSymbolName { + Call /* = "__call" */, + Constructor /* = "__constructor" */, + New /* = "__new" */, + Index /* = "__index" */, + ExportStar /* = "__export" */, + Global /* = "__global" */, + Missing /* = "__missing" */, + Type /* = "__type" */, + Object /* = "__object" */, + JSXAttributes /* = "__jsxAttributes" */, + Class /* = "__class" */, + Function /* = "__function" */, + Computed /* = "__computed" */, + Resolving /* = "__resolving__" */, + ExportEquals /* = "export=" */, + Default /* = "default" */, + This /* = "this" */ +} + +external interface ReadonlyUnderscoreEscapedMap : ReadonlyESMap + +external interface UnderscoreEscapedMap : ESMap, ReadonlyUnderscoreEscapedMap + +external enum class TypeFlags { + Any /* = 1 */, + Unknown /* = 2 */, + String /* = 4 */, + Number /* = 8 */, + Boolean /* = 16 */, + Enum /* = 32 */, + BigInt /* = 64 */, + StringLiteral /* = 128 */, + NumberLiteral /* = 256 */, + BooleanLiteral /* = 512 */, + EnumLiteral /* = 1024 */, + BigIntLiteral /* = 2048 */, + ESSymbol /* = 4096 */, + UniqueESSymbol /* = 8192 */, + Void /* = 16384 */, + Undefined /* = 32768 */, + Null /* = 65536 */, + Never /* = 131072 */, + TypeParameter /* = 262144 */, + Object /* = 524288 */, + Union /* = 1048576 */, + Intersection /* = 2097152 */, + Index /* = 4194304 */, + IndexedAccess /* = 8388608 */, + Conditional /* = 16777216 */, + Substitution /* = 33554432 */, + NonPrimitive /* = 67108864 */, + TemplateLiteral /* = 134217728 */, + StringMapping /* = 268435456 */, + Literal /* = 2944 */, + Unit /* = 109440 */, + StringOrNumberLiteral /* = 384 */, + PossiblyFalsy /* = 117724 */, + StringLike /* = 402653316 */, + NumberLike /* = 296 */, + BigIntLike /* = 2112 */, + BooleanLike /* = 528 */, + EnumLike /* = 1056 */, + ESSymbolLike /* = 12288 */, + VoidLike /* = 49152 */, + UnionOrIntersection /* = 3145728 */, + StructuredType /* = 3670016 */, + TypeVariable /* = 8650752 */, + InstantiableNonPrimitive /* = 58982400 */, + InstantiablePrimitive /* = 406847488 */, + Instantiable /* = 465829888 */, + StructuredOrInstantiable /* = 469499904 */, + Narrowable /* = 536624127 */ +} + +external interface Type { + fun getFlags(): TypeFlags + fun getSymbol(): Symbol? + fun getProperties(): Array + fun getProperty(propertyName: String): Symbol? + fun getApparentProperties(): Array + fun getCallSignatures(): Array + fun getConstructSignatures(): Array + fun getStringIndexType(): Type? + fun getNumberIndexType(): Type? + fun getBaseTypes(): Array? + fun getNonNullableType(): Type + fun getConstraint(): Type? + fun getDefault(): Type? + fun isUnion(): Boolean + fun isIntersection(): Boolean + fun isUnionOrIntersection(): Boolean + fun isLiteral(): Boolean + fun isStringLiteral(): Boolean + fun isNumberLiteral(): Boolean + fun isTypeParameter(): Boolean + fun isClassOrInterface(): Boolean + fun isClass(): Boolean + var flags: TypeFlags + var symbol: Symbol + var pattern: dynamic /* ObjectBindingPattern? | ArrayBindingPattern? | ObjectLiteralExpression? | ArrayLiteralExpression? */ + get() = definedExternally + set(value) = definedExternally + var aliasSymbol: Symbol? + get() = definedExternally + set(value) = definedExternally + var aliasTypeArguments: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface LiteralType : Type { + var value: dynamic /* String | Number | PseudoBigInt */ + get() = definedExternally + set(value) = definedExternally + var freshType: LiteralType + var regularType: LiteralType +} + +external interface UniqueESSymbolType : Type { + override var symbol: Symbol + var escapedName: dynamic /* String & `T$8` | Unit & `T$8` | InternalSymbolName */ + get() = definedExternally + set(value) = definedExternally +} + +external interface StringLiteralType : LiteralType { + override var value: String +} + +external interface NumberLiteralType : LiteralType { + override var value: Number +} + +external interface BigIntLiteralType : LiteralType { + override var value: PseudoBigInt +} + +external interface EnumType : Type + +external enum class ObjectFlags { + Class /* = 1 */, + Interface /* = 2 */, + Reference /* = 4 */, + Tuple /* = 8 */, + Anonymous /* = 16 */, + Mapped /* = 32 */, + Instantiated /* = 64 */, + ObjectLiteral /* = 128 */, + EvolvingArray /* = 256 */, + ObjectLiteralPatternWithComputedProperties /* = 512 */, + ReverseMapped /* = 1024 */, + JsxAttributes /* = 2048 */, + MarkerType /* = 4096 */, + JSLiteral /* = 8192 */, + FreshLiteral /* = 16384 */, + ArrayLiteral /* = 32768 */, + ClassOrInterface /* = 3 */, + ContainsSpread /* = 4194304 */, + ObjectRestType /* = 8388608 */ +} + +external interface ObjectType : Type { + var objectFlags: ObjectFlags +} + +external interface InterfaceType : ObjectType { + var typeParameters: Array? + var outerTypeParameters: Array? + var localTypeParameters: Array? + var thisType: TypeParameter? +} + +external interface InterfaceTypeWithDeclaredMembers : InterfaceType { + var declaredProperties: Array + var declaredCallSignatures: Array + var declaredConstructSignatures: Array + var declaredIndexInfos: Array +} + +external interface TypeReference : ObjectType { + var typeArguments: Array? + get() = definedExternally + set(value) = definedExternally + var target: GenericType + var node: dynamic /* TypeReferenceNode? | ArrayTypeNode? | TupleTypeNode? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface DeferredTypeReference : TypeReference + +external interface GenericType : InterfaceType, TypeReference + +external enum class ElementFlags { + Required /* = 1 */, + Optional /* = 2 */, + Rest /* = 4 */, + Variadic /* = 8 */, + Fixed /* = 3 */, + Variable /* = 12 */, + NonRequired /* = 14 */, + NonRest /* = 11 */ +} + +external interface TupleType : GenericType { + var elementFlags: Array + var minLength: Number + var fixedLength: Number + var hasRestElement: Boolean + var combinedFlags: ElementFlags + var readonly: Boolean + var labeledElementDeclarations: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface TupleTypeReference : TypeReference { + override var target: TupleType +} + +external interface UnionOrIntersectionType : Type { + var types: Array +} + +external interface UnionType : UnionOrIntersectionType + +external interface IntersectionType : UnionOrIntersectionType + +external interface EvolvingArrayType : ObjectType { + var elementType: Type + var finalArrayType: Type? + get() = definedExternally + set(value) = definedExternally +} + +external interface InstantiableType : Type + +external interface TypeParameter : InstantiableType + +external interface IndexedAccessType : InstantiableType { + var objectType: Type + var indexType: Type + var constraint: Type? + get() = definedExternally + set(value) = definedExternally + var simplifiedForReading: Type? + get() = definedExternally + set(value) = definedExternally + var simplifiedForWriting: Type? + get() = definedExternally + set(value) = definedExternally +} + +external interface IndexType : InstantiableType { + var type: dynamic /* InstantiableType | UnionOrIntersectionType */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ConditionalRoot { + var node: ConditionalTypeNode + var checkType: Type + var extendsType: Type + var isDistributive: Boolean + var inferTypeParameters: Array? + get() = definedExternally + set(value) = definedExternally + var outerTypeParameters: Array? + get() = definedExternally + set(value) = definedExternally + var instantiations: Map? + get() = definedExternally + set(value) = definedExternally + var aliasSymbol: Symbol? + get() = definedExternally + set(value) = definedExternally + var aliasTypeArguments: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface ConditionalType : InstantiableType { + var root: ConditionalRoot + var checkType: Type + var extendsType: Type + var resolvedTrueType: Type + var resolvedFalseType: Type +} + +external interface TemplateLiteralType : InstantiableType { + var texts: Array + var types: Array +} + +external interface StringMappingType : InstantiableType { + override var symbol: Symbol + var type: Type +} + +external interface SubstitutionType : InstantiableType { + var objectFlags: ObjectFlags + var baseType: Type + var substitute: Type +} + +external enum class SignatureKind { + Call /* = 0 */, + Construct /* = 1 */ +} + +external interface Signature { + fun getDeclaration(): dynamic /* CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | FunctionExpression | ArrowFunction */ + fun getTypeParameters(): Array? + fun getParameters(): Array + fun getReturnType(): Type + fun getDocumentationComment(typeChecker: TypeChecker?): Array + fun getJsDocTags(): Array + var declaration: dynamic /* CallSignatureDeclaration? | ConstructSignatureDeclaration? | MethodSignature? | IndexSignatureDeclaration? | FunctionTypeNode? | ConstructorTypeNode? | JSDocFunctionType? | FunctionDeclaration? | MethodDeclaration? | ConstructorDeclaration? | GetAccessorDeclaration? | SetAccessorDeclaration? | FunctionExpression? | ArrowFunction? | JSDocSignature? */ + get() = definedExternally + set(value) = definedExternally + var typeParameters: Array? + get() = definedExternally + set(value) = definedExternally + var parameters: Array +} + +external enum class IndexKind { + String /* = 0 */, + Number /* = 1 */ +} + +external interface IndexInfo { + var keyType: Type + var type: Type + var isReadonly: Boolean + var declaration: IndexSignatureDeclaration? + get() = definedExternally + set(value) = definedExternally +} + +external enum class InferencePriority { + NakedTypeVariable /* = 1 */, + SpeculativeTuple /* = 2 */, + SubstituteSource /* = 4 */, + HomomorphicMappedType /* = 8 */, + PartialHomomorphicMappedType /* = 16 */, + MappedTypeConstraint /* = 32 */, + ContravariantConditional /* = 64 */, + ReturnType /* = 128 */, + LiteralKeyof /* = 256 */, + NoConstraints /* = 512 */, + AlwaysStrict /* = 1024 */, + MaxValue /* = 2048 */, + PriorityImpliesCombination /* = 416 */, + Circularity /* = -1 */ +} + +external interface FileExtensionInfo { + var extension: String + var isMixedContent: Boolean + var scriptKind: ScriptKind? + get() = definedExternally + set(value) = definedExternally +} + +external interface DiagnosticMessage { + var key: String + var category: DiagnosticCategory + var code: Number + var message: String + var reportsUnnecessary: Any? + get() = definedExternally + set(value) = definedExternally + var reportsDeprecated: Any? + get() = definedExternally + set(value) = definedExternally +} + +external interface DiagnosticMessageChain { + var messageText: String + var category: DiagnosticCategory + var code: Number + var next: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface Diagnostic : DiagnosticRelatedInformation { + var reportsUnnecessary: Any? + get() = definedExternally + set(value) = definedExternally + var reportsDeprecated: Any? + get() = definedExternally + set(value) = definedExternally + var source: String? + get() = definedExternally + set(value) = definedExternally + var relatedInformation: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface DiagnosticRelatedInformation { + var category: DiagnosticCategory + var code: Number + var file: SourceFile? + var start: Number? + var length: Number? + var messageText: dynamic /* String | DiagnosticMessageChain */ + get() = definedExternally + set(value) = definedExternally +} + +external interface DiagnosticWithLocation : Diagnostic + +external enum class DiagnosticCategory { + Warning /* = 0 */, + Error /* = 1 */, + Suggestion /* = 2 */, + Message /* = 3 */ +} + +external enum class ModuleResolutionKind { + Classic /* = 1 */, + NodeJs /* = 2 */ +} + +external interface PluginImport { + var name: String +} + +external interface ProjectReference { + var path: String + var originalPath: String? + get() = definedExternally + set(value) = definedExternally + var prepend: Boolean? + get() = definedExternally + set(value) = definedExternally + var circular: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external enum class WatchFileKind { + FixedPollingInterval /* = 0 */, + PriorityPollingInterval /* = 1 */, + DynamicPriorityPolling /* = 2 */, + FixedChunkSizePolling /* = 3 */, + UseFsEvents /* = 4 */, + UseFsEventsOnParentDirectory /* = 5 */ +} + +external enum class WatchDirectoryKind { + UseFsEvents /* = 0 */, + FixedPollingInterval /* = 1 */, + DynamicPriorityPolling /* = 2 */, + FixedChunkSizePolling /* = 3 */ +} + +external enum class PollingWatchKind { + FixedInterval /* = 0 */, + PriorityInterval /* = 1 */, + DynamicPriority /* = 2 */, + FixedChunkSize /* = 3 */ +} + +external interface CompilerOptions { + var allowJs: Boolean? + get() = definedExternally + set(value) = definedExternally + var allowSyntheticDefaultImports: Boolean? + get() = definedExternally + set(value) = definedExternally + var allowUmdGlobalAccess: Boolean? + get() = definedExternally + set(value) = definedExternally + var allowUnreachableCode: Boolean? + get() = definedExternally + set(value) = definedExternally + var allowUnusedLabels: Boolean? + get() = definedExternally + set(value) = definedExternally + var alwaysStrict: Boolean? + get() = definedExternally + set(value) = definedExternally + var baseUrl: String? + get() = definedExternally + set(value) = definedExternally + var charset: String? + get() = definedExternally + set(value) = definedExternally + var checkJs: Boolean? + get() = definedExternally + set(value) = definedExternally + var declaration: Boolean? + get() = definedExternally + set(value) = definedExternally + var declarationMap: Boolean? + get() = definedExternally + set(value) = definedExternally + var emitDeclarationOnly: Boolean? + get() = definedExternally + set(value) = definedExternally + var declarationDir: String? + get() = definedExternally + set(value) = definedExternally + var disableSizeLimit: Boolean? + get() = definedExternally + set(value) = definedExternally + var disableSourceOfProjectReferenceRedirect: Boolean? + get() = definedExternally + set(value) = definedExternally + var disableSolutionSearching: Boolean? + get() = definedExternally + set(value) = definedExternally + var disableReferencedProjectLoad: Boolean? + get() = definedExternally + set(value) = definedExternally + var downlevelIteration: Boolean? + get() = definedExternally + set(value) = definedExternally + var emitBOM: Boolean? + get() = definedExternally + set(value) = definedExternally + var emitDecoratorMetadata: Boolean? + get() = definedExternally + set(value) = definedExternally + var exactOptionalPropertyTypes: Boolean? + get() = definedExternally + set(value) = definedExternally + var experimentalDecorators: Boolean? + get() = definedExternally + set(value) = definedExternally + var forceConsistentCasingInFileNames: Boolean? + get() = definedExternally + set(value) = definedExternally + var importHelpers: Boolean? + get() = definedExternally + set(value) = definedExternally + var importsNotUsedAsValues: ImportsNotUsedAsValues? + get() = definedExternally + set(value) = definedExternally + var inlineSourceMap: Boolean? + get() = definedExternally + set(value) = definedExternally + var inlineSources: Boolean? + get() = definedExternally + set(value) = definedExternally + var isolatedModules: Boolean? + get() = definedExternally + set(value) = definedExternally + var jsx: JsxEmit? + get() = definedExternally + set(value) = definedExternally + var keyofStringsOnly: Boolean? + get() = definedExternally + set(value) = definedExternally + var lib: Array? + get() = definedExternally + set(value) = definedExternally + var locale: String? + get() = definedExternally + set(value) = definedExternally + var mapRoot: String? + get() = definedExternally + set(value) = definedExternally + var maxNodeModuleJsDepth: Number? + get() = definedExternally + set(value) = definedExternally + var module: ModuleKind? + get() = definedExternally + set(value) = definedExternally + var moduleResolution: ModuleResolutionKind? + get() = definedExternally + set(value) = definedExternally + var newLine: NewLineKind? + get() = definedExternally + set(value) = definedExternally + var noEmit: Boolean? + get() = definedExternally + set(value) = definedExternally + var noEmitHelpers: Boolean? + get() = definedExternally + set(value) = definedExternally + var noEmitOnError: Boolean? + get() = definedExternally + set(value) = definedExternally + var noErrorTruncation: Boolean? + get() = definedExternally + set(value) = definedExternally + var noFallthroughCasesInSwitch: Boolean? + get() = definedExternally + set(value) = definedExternally + var noImplicitAny: Boolean? + get() = definedExternally + set(value) = definedExternally + var noImplicitReturns: Boolean? + get() = definedExternally + set(value) = definedExternally + var noImplicitThis: Boolean? + get() = definedExternally + set(value) = definedExternally + var noStrictGenericChecks: Boolean? + get() = definedExternally + set(value) = definedExternally + var noUnusedLocals: Boolean? + get() = definedExternally + set(value) = definedExternally + var noUnusedParameters: Boolean? + get() = definedExternally + set(value) = definedExternally + var noImplicitUseStrict: Boolean? + get() = definedExternally + set(value) = definedExternally + var noPropertyAccessFromIndexSignature: Boolean? + get() = definedExternally + set(value) = definedExternally + var assumeChangesOnlyAffectDirectDependencies: Boolean? + get() = definedExternally + set(value) = definedExternally + var noLib: Boolean? + get() = definedExternally + set(value) = definedExternally + var noResolve: Boolean? + get() = definedExternally + set(value) = definedExternally + var noUncheckedIndexedAccess: Boolean? + get() = definedExternally + set(value) = definedExternally + var out: String? + get() = definedExternally + set(value) = definedExternally + var outDir: String? + get() = definedExternally + set(value) = definedExternally + var outFile: String? + get() = definedExternally + set(value) = definedExternally + var paths: MapLike>? + get() = definedExternally + set(value) = definedExternally + var preserveConstEnums: Boolean? + get() = definedExternally + set(value) = definedExternally + var noImplicitOverride: Boolean? + get() = definedExternally + set(value) = definedExternally + var preserveSymlinks: Boolean? + get() = definedExternally + set(value) = definedExternally + var project: String? + get() = definedExternally + set(value) = definedExternally + var reactNamespace: String? + get() = definedExternally + set(value) = definedExternally + var jsxFactory: String? + get() = definedExternally + set(value) = definedExternally + var jsxFragmentFactory: String? + get() = definedExternally + set(value) = definedExternally + var jsxImportSource: String? + get() = definedExternally + set(value) = definedExternally + var composite: Boolean? + get() = definedExternally + set(value) = definedExternally + var incremental: Boolean? + get() = definedExternally + set(value) = definedExternally + var tsBuildInfoFile: String? + get() = definedExternally + set(value) = definedExternally + var removeComments: Boolean? + get() = definedExternally + set(value) = definedExternally + var rootDir: String? + get() = definedExternally + set(value) = definedExternally + var rootDirs: Array? + get() = definedExternally + set(value) = definedExternally + var skipLibCheck: Boolean? + get() = definedExternally + set(value) = definedExternally + var skipDefaultLibCheck: Boolean? + get() = definedExternally + set(value) = definedExternally + var sourceMap: Boolean? + get() = definedExternally + set(value) = definedExternally + var sourceRoot: String? + get() = definedExternally + set(value) = definedExternally + var strict: Boolean? + get() = definedExternally + set(value) = definedExternally + var strictFunctionTypes: Boolean? + get() = definedExternally + set(value) = definedExternally + var strictBindCallApply: Boolean? + get() = definedExternally + set(value) = definedExternally + var strictNullChecks: Boolean? + get() = definedExternally + set(value) = definedExternally + var strictPropertyInitialization: Boolean? + get() = definedExternally + set(value) = definedExternally + var stripInternal: Boolean? + get() = definedExternally + set(value) = definedExternally + var suppressExcessPropertyErrors: Boolean? + get() = definedExternally + set(value) = definedExternally + var suppressImplicitAnyIndexErrors: Boolean? + get() = definedExternally + set(value) = definedExternally + var target: ScriptTarget? + get() = definedExternally + set(value) = definedExternally + var traceResolution: Boolean? + get() = definedExternally + set(value) = definedExternally + var useUnknownInCatchVariables: Boolean? + get() = definedExternally + set(value) = definedExternally + var resolveJsonModule: Boolean? + get() = definedExternally + set(value) = definedExternally + var types: Array? + get() = definedExternally + set(value) = definedExternally + var typeRoots: Array? + get() = definedExternally + set(value) = definedExternally + var esModuleInterop: Boolean? + get() = definedExternally + set(value) = definedExternally + var useDefineForClassFields: Boolean? + get() = definedExternally + set(value) = definedExternally + @nativeGetter + operator fun get(option: String): dynamic /* String? | Number? | Boolean? | Array? | Array? | MapLike>? | Array? | Array? | TsConfigSourceFile? */ + @nativeSetter + operator fun set(option: String, value: String?) + @nativeSetter + operator fun set(option: String, value: Number?) + @nativeSetter + operator fun set(option: String, value: Boolean?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: MapLike>?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: TsConfigSourceFile?) +} + +external interface WatchOptions { + var watchFile: WatchFileKind? + get() = definedExternally + set(value) = definedExternally + var watchDirectory: WatchDirectoryKind? + get() = definedExternally + set(value) = definedExternally + var fallbackPolling: PollingWatchKind? + get() = definedExternally + set(value) = definedExternally + var synchronousWatchDirectory: Boolean? + get() = definedExternally + set(value) = definedExternally + var excludeDirectories: Array? + get() = definedExternally + set(value) = definedExternally + var excludeFiles: Array? + get() = definedExternally + set(value) = definedExternally + @nativeGetter + operator fun get(option: String): dynamic /* String? | Number? | Boolean? | Array? | Array? | MapLike>? | Array? | Array? */ + @nativeSetter + operator fun set(option: String, value: String?) + @nativeSetter + operator fun set(option: String, value: Number?) + @nativeSetter + operator fun set(option: String, value: Boolean?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: MapLike>?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) +} + +external interface TypeAcquisition { + var enableAutoDiscovery: Boolean? + get() = definedExternally + set(value) = definedExternally + var enable: Boolean? + get() = definedExternally + set(value) = definedExternally + var include: Array? + get() = definedExternally + set(value) = definedExternally + var exclude: Array? + get() = definedExternally + set(value) = definedExternally + var disableFilenameBasedTypeAcquisition: Boolean? + get() = definedExternally + set(value) = definedExternally + @nativeGetter + operator fun get(option: String): dynamic /* String? | Number? | Boolean? | Array? | Array? | MapLike>? | Array? | Array? */ + @nativeSetter + operator fun set(option: String, value: String?) + @nativeSetter + operator fun set(option: String, value: Number?) + @nativeSetter + operator fun set(option: String, value: Boolean?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: MapLike>?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) +} + +external enum class ModuleKind { + None /* = 0 */, + CommonJS /* = 1 */, + AMD /* = 2 */, + UMD /* = 3 */, + System /* = 4 */, + ES2015 /* = 5 */, + ES2020 /* = 6 */, + ESNext /* = 99 */ +} + +external enum class JsxEmit { + None /* = 0 */, + Preserve /* = 1 */, + React /* = 2 */, + ReactNative /* = 3 */, + ReactJSX /* = 4 */, + ReactJSXDev /* = 5 */ +} + +external enum class ImportsNotUsedAsValues { + Remove /* = 0 */, + Preserve /* = 1 */, + Error /* = 2 */ +} + +external enum class NewLineKind { + CarriageReturnLineFeed /* = 0 */, + LineFeed /* = 1 */ +} + +external interface LineAndCharacter { + var line: Number + var character: Number +} + +external enum class ScriptKind { + Unknown /* = 0 */, + JS /* = 1 */, + JSX /* = 2 */, + TS /* = 3 */, + TSX /* = 4 */, + External /* = 5 */, + JSON /* = 6 */, + Deferred /* = 7 */ +} + +external enum class ScriptTarget { + ES3 /* = 0 */, + ES5 /* = 1 */, + ES2015 /* = 2 */, + ES2016 /* = 3 */, + ES2017 /* = 4 */, + ES2018 /* = 5 */, + ES2019 /* = 6 */, + ES2020 /* = 7 */, + ES2021 /* = 8 */, + ESNext /* = 99 */, + JSON /* = 100 */, + Latest /* = 99 */ +} + +external enum class LanguageVariant { + Standard /* = 0 */, + JSX /* = 1 */ +} + +external interface ParsedCommandLine { + var options: CompilerOptions + var typeAcquisition: TypeAcquisition? + get() = definedExternally + set(value) = definedExternally + var fileNames: Array + var projectReferences: Array? + get() = definedExternally + set(value) = definedExternally + var watchOptions: WatchOptions? + get() = definedExternally + set(value) = definedExternally + var raw: Any? + get() = definedExternally + set(value) = definedExternally + var errors: Array + var wildcardDirectories: MapLike? + get() = definedExternally + set(value) = definedExternally + var compileOnSave: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external enum class WatchDirectoryFlags { + None /* = 0 */, + Recursive /* = 1 */ +} + +external interface CreateProgramOptions { + var rootNames: Array + var options: CompilerOptions + var projectReferences: Array? + get() = definedExternally + set(value) = definedExternally + var host: CompilerHost? + get() = definedExternally + set(value) = definedExternally + var oldProgram: Program? + get() = definedExternally + set(value) = definedExternally + var configFileParsingDiagnostics: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface ModuleResolutionHost { + fun fileExists(fileName: String): Boolean + fun readFile(fileName: String): String? + val trace: ((s: String) -> Unit)? + val directoryExists: ((directoryName: String) -> Boolean)? + val realpath: ((path: String) -> String)? + val getCurrentDirectory: (() -> String)? + val getDirectories: ((path: String) -> Array)? +} + +external interface ResolvedModule { + var resolvedFileName: String + var isExternalLibraryImport: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ResolvedModuleFull : ResolvedModule { + var extension: Extension + var packageId: PackageId? + get() = definedExternally + set(value) = definedExternally +} + +external interface PackageId { + var name: String + var subModuleName: String + var version: String +} + +external enum class Extension { + Ts /* = ".ts" */, + Tsx /* = ".tsx" */, + Dts /* = ".d.ts" */, + Js /* = ".js" */, + Jsx /* = ".jsx" */, + Json /* = ".json" */, + TsBuildInfo /* = ".tsbuildinfo" */ +} + +external interface ResolvedModuleWithFailedLookupLocations { + var resolvedModule: ResolvedModuleFull? +} + +external interface ResolvedTypeReferenceDirective { + var primary: Boolean + var resolvedFileName: String? + var packageId: PackageId? + get() = definedExternally + set(value) = definedExternally + var isExternalLibraryImport: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations { + var resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective? + var failedLookupLocations: Array +} + +external interface CompilerHost : ModuleResolutionHost { + fun getSourceFile(fileName: String, languageVersion: ScriptTarget, onError: (message: String) -> Unit = definedExternally, shouldCreateNewSourceFile: Boolean = definedExternally): SourceFile? + val getSourceFileByPath: ((fileName: String, path: String /* String & `T$3` */, languageVersion: ScriptTarget, onError: (message: String) -> Unit, shouldCreateNewSourceFile: Boolean) -> SourceFile?)? + val getCancellationToken: (() -> CancellationToken)? + fun getDefaultLibFileName(options: CompilerOptions): String + val getDefaultLibLocation: (() -> String)? + var writeFile: WriteFileCallback + override var getCurrentDirectory: () -> String + fun getCanonicalFileName(fileName: String): String + fun useCaseSensitiveFileNames(): Boolean + fun getNewLine(): String + val readDirectory: ((rootDir: String, extensions: Array, excludes: Array?, includes: Array, depth: Number) -> Array)? + val resolveModuleNames: ((moduleNames: Array, containingFile: String, reusedNames: Array?, redirectedReference: ResolvedProjectReference?, options: CompilerOptions) -> Array)? + val resolveTypeReferenceDirectives: ((typeReferenceDirectiveNames: Array, containingFile: String, redirectedReference: ResolvedProjectReference?, options: CompilerOptions) -> Array)? + val getEnvironmentVariable: ((name: String) -> String?)? + val createHash: ((data: String) -> String)? + val getParsedCommandLine: ((fileName: String) -> ParsedCommandLine?)? +} + +external interface SourceMapRange : TextRange { + var source: SourceMapSource? + get() = definedExternally + set(value) = definedExternally +} + +external interface SourceMapSource { + fun getLineAndCharacterOfPosition(pos: Number): LineAndCharacter + var fileName: String + var text: String + var skipTrivia: ((pos: Number) -> Number)? + get() = definedExternally + set(value) = definedExternally +} + +external enum class EmitFlags { + None /* = 0 */, + SingleLine /* = 1 */, + AdviseOnEmitNode /* = 2 */, + NoSubstitution /* = 4 */, + CapturesThis /* = 8 */, + NoLeadingSourceMap /* = 16 */, + NoTrailingSourceMap /* = 32 */, + NoSourceMap /* = 48 */, + NoNestedSourceMaps /* = 64 */, + NoTokenLeadingSourceMaps /* = 128 */, + NoTokenTrailingSourceMaps /* = 256 */, + NoTokenSourceMaps /* = 384 */, + NoLeadingComments /* = 512 */, + NoTrailingComments /* = 1024 */, + NoComments /* = 1536 */, + NoNestedComments /* = 2048 */, + HelperName /* = 4096 */, + ExportName /* = 8192 */, + LocalName /* = 16384 */, + InternalName /* = 32768 */, + Indented /* = 65536 */, + NoIndentation /* = 131072 */, + AsyncFunctionBody /* = 262144 */, + ReuseTempVariableScope /* = 524288 */, + CustomPrologue /* = 1048576 */, + NoHoisting /* = 2097152 */, + HasEndOfDeclarationMarker /* = 4194304 */, + Iterator /* = 8388608 */, + NoAsciiEscaping /* = 16777216 */ +} + +external interface EmitHelperBase { + var name: String + var scoped: Boolean + var text: dynamic /* String | (node: EmitHelperUniqueNameCallback) -> String */ + get() = definedExternally + set(value) = definedExternally + var priority: Number? + get() = definedExternally + set(value) = definedExternally + var dependencies: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface ScopedEmitHelper : EmitHelperBase { + override var scoped: Boolean +} + +external interface UnscopedEmitHelper : EmitHelperBase { + override var scoped: Boolean + override var text: String +} + +external enum class EmitHint { + SourceFile /* = 0 */, + Expression /* = 1 */, + IdentifierName /* = 2 */, + MappedTypeParameter /* = 3 */, + Unspecified /* = 4 */, + EmbeddedStatement /* = 5 */, + JsxAttributeValue /* = 6 */ +} + +external enum class OuterExpressionKinds { + Parentheses /* = 1 */, + TypeAssertions /* = 2 */, + NonNullAssertions /* = 4 */, + PartiallyEmittedExpressions /* = 8 */, + Assertions /* = 6 */, + All /* = 15 */ +} + +external interface NodeFactory { + fun createNodeArray(elements: Array = definedExternally, hasTrailingComma: Boolean = definedExternally): NodeArray + fun createNumericLiteral(value: String, numericLiteralFlags: TokenFlags = definedExternally): NumericLiteral + fun createNumericLiteral(value: String): NumericLiteral + fun createNumericLiteral(value: Number, numericLiteralFlags: TokenFlags = definedExternally): NumericLiteral + fun createNumericLiteral(value: Number): NumericLiteral + fun createBigIntLiteral(value: String): BigIntLiteral + fun createBigIntLiteral(value: PseudoBigInt): BigIntLiteral + fun createStringLiteral(text: String, isSingleQuote: Boolean = definedExternally): StringLiteral + fun createStringLiteralFromNode(sourceNode: Identifier, isSingleQuote: Boolean = definedExternally): StringLiteral + fun createStringLiteralFromNode(sourceNode: Identifier): StringLiteral + fun createStringLiteralFromNode(sourceNode: StringLiteral, isSingleQuote: Boolean = definedExternally): StringLiteral + fun createStringLiteralFromNode(sourceNode: StringLiteral): StringLiteral + fun createStringLiteralFromNode(sourceNode: NoSubstitutionTemplateLiteral, isSingleQuote: Boolean = definedExternally): StringLiteral + fun createStringLiteralFromNode(sourceNode: NoSubstitutionTemplateLiteral): StringLiteral + fun createStringLiteralFromNode(sourceNode: NumericLiteral, isSingleQuote: Boolean = definedExternally): StringLiteral + fun createStringLiteralFromNode(sourceNode: NumericLiteral): StringLiteral + fun createRegularExpressionLiteral(text: String): RegularExpressionLiteral + fun createIdentifier(text: String): Identifier + fun createTempVariable(recordTempVariable: ((node: Identifier) -> Unit)?, reservedInNestedScopes: Boolean = definedExternally): Identifier + fun createLoopVariable(reservedInNestedScopes: Boolean = definedExternally): Identifier + fun createUniqueName(text: String, flags: GeneratedIdentifierFlags = definedExternally): Identifier + fun getGeneratedNameForNode(node: Node?, flags: GeneratedIdentifierFlags = definedExternally): Identifier + fun createPrivateIdentifier(text: String): PrivateIdentifier + fun createToken(token: SyntaxKind.SuperKeyword): SuperExpression + fun createToken(token: SyntaxKind.ThisKeyword): ThisExpression + fun createToken(token: SyntaxKind.NullKeyword): NullLiteral + fun createToken(token: SyntaxKind.TrueKeyword): TrueLiteral + fun createToken(token: SyntaxKind.FalseKeyword): FalseLiteral + fun createToken(token: TKind): dynamic /* Token */ + fun createSuper(): SuperExpression + fun createThis(): ThisExpression + fun createNull(): NullLiteral + fun createTrue(): TrueLiteral + fun createFalse(): FalseLiteral + fun createModifier(kind: T): ModifierToken + fun createModifiersFromModifierFlags(flags: ModifierFlags): Array + fun createQualifiedName(left: Identifier, right: String): QualifiedName + fun createQualifiedName(left: Identifier, right: Identifier): QualifiedName + fun createQualifiedName(left: QualifiedName, right: String): QualifiedName + fun createQualifiedName(left: QualifiedName, right: Identifier): QualifiedName + fun updateQualifiedName(node: QualifiedName, left: Identifier, right: Identifier): QualifiedName + fun updateQualifiedName(node: QualifiedName, left: QualifiedName, right: Identifier): QualifiedName + fun createComputedPropertyName(expression: Expression): ComputedPropertyName + fun updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName + fun createTypeParameterDeclaration(name: String, constraint: TypeNode = definedExternally, defaultType: TypeNode = definedExternally): TypeParameterDeclaration + fun createTypeParameterDeclaration(name: String): TypeParameterDeclaration + fun createTypeParameterDeclaration(name: String, constraint: TypeNode = definedExternally): TypeParameterDeclaration + fun createTypeParameterDeclaration(name: Identifier, constraint: TypeNode = definedExternally, defaultType: TypeNode = definedExternally): TypeParameterDeclaration + fun createTypeParameterDeclaration(name: Identifier): TypeParameterDeclaration + fun createTypeParameterDeclaration(name: Identifier, constraint: TypeNode = definedExternally): TypeParameterDeclaration + fun updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode?, defaultType: TypeNode?): TypeParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: String, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: String): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: String, questionToken: QuestionToken = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: String, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: Identifier, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: Identifier): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: Identifier, questionToken: QuestionToken = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: Identifier, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ObjectBindingPattern, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ObjectBindingPattern): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ObjectBindingPattern, questionToken: QuestionToken = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ObjectBindingPattern, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ArrayBindingPattern, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ArrayBindingPattern): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ArrayBindingPattern, questionToken: QuestionToken = definedExternally): ParameterDeclaration + fun createParameterDeclaration(decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ArrayBindingPattern, questionToken: QuestionToken = definedExternally, type: TypeNode = definedExternally): ParameterDeclaration + fun updateParameterDeclaration(node: ParameterDeclaration, decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: String, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?): ParameterDeclaration + fun updateParameterDeclaration(node: ParameterDeclaration, decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: Identifier, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?): ParameterDeclaration + fun updateParameterDeclaration(node: ParameterDeclaration, decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ObjectBindingPattern, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?): ParameterDeclaration + fun updateParameterDeclaration(node: ParameterDeclaration, decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: ArrayBindingPattern, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?): ParameterDeclaration + fun createDecorator(expression: Expression): Decorator + fun updateDecorator(node: Decorator, expression: Expression): Decorator + fun createPropertySignature(modifiers: Array?, name: Identifier, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun createPropertySignature(modifiers: Array?, name: StringLiteral, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun createPropertySignature(modifiers: Array?, name: NumericLiteral, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun createPropertySignature(modifiers: Array?, name: ComputedPropertyName, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun createPropertySignature(modifiers: Array?, name: PrivateIdentifier, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun createPropertySignature(modifiers: Array?, name: String, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun updatePropertySignature(node: PropertySignature, modifiers: Array?, name: Identifier, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun updatePropertySignature(node: PropertySignature, modifiers: Array?, name: StringLiteral, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun updatePropertySignature(node: PropertySignature, modifiers: Array?, name: NumericLiteral, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun updatePropertySignature(node: PropertySignature, modifiers: Array?, name: ComputedPropertyName, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun updatePropertySignature(node: PropertySignature, modifiers: Array?, name: PrivateIdentifier, questionToken: QuestionToken?, type: TypeNode?): PropertySignature + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: String, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: String, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: NumericLiteral, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: NumericLiteral, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: ComputedPropertyName, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: ComputedPropertyName, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: PrivateIdentifier, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createPropertyDeclaration(decorators: Array?, modifiers: Array?, name: PrivateIdentifier, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: String, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: String, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: NumericLiteral, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: NumericLiteral, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: ComputedPropertyName, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: ComputedPropertyName, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: PrivateIdentifier, questionOrExclamationToken: QuestionToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun updatePropertyDeclaration(node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: PrivateIdentifier, questionOrExclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): PropertyDeclaration + fun createMethodSignature(modifiers: Array?, name: String, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?): MethodSignature + fun createMethodSignature(modifiers: Array?, name: Identifier, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?): MethodSignature + fun createMethodSignature(modifiers: Array?, name: StringLiteral, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?): MethodSignature + fun createMethodSignature(modifiers: Array?, name: NumericLiteral, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?): MethodSignature + fun createMethodSignature(modifiers: Array?, name: ComputedPropertyName, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?): MethodSignature + fun createMethodSignature(modifiers: Array?, name: PrivateIdentifier, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?): MethodSignature + fun updateMethodSignature(node: MethodSignature, modifiers: Array?, name: Identifier, questionToken: QuestionToken?, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?): MethodSignature + fun updateMethodSignature(node: MethodSignature, modifiers: Array?, name: StringLiteral, questionToken: QuestionToken?, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?): MethodSignature + fun updateMethodSignature(node: MethodSignature, modifiers: Array?, name: NumericLiteral, questionToken: QuestionToken?, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?): MethodSignature + fun updateMethodSignature(node: MethodSignature, modifiers: Array?, name: ComputedPropertyName, questionToken: QuestionToken?, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?): MethodSignature + fun updateMethodSignature(node: MethodSignature, modifiers: Array?, name: PrivateIdentifier, questionToken: QuestionToken?, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?): MethodSignature + fun createMethodDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: String, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun createMethodDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun createMethodDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: StringLiteral, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun createMethodDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: NumericLiteral, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun createMethodDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: ComputedPropertyName, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun createMethodDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: PrivateIdentifier, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun updateMethodDeclaration(node: MethodDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun updateMethodDeclaration(node: MethodDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: StringLiteral, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun updateMethodDeclaration(node: MethodDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: NumericLiteral, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun updateMethodDeclaration(node: MethodDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: ComputedPropertyName, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun updateMethodDeclaration(node: MethodDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: PrivateIdentifier, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): MethodDeclaration + fun createConstructorDeclaration(decorators: Array?, modifiers: Array?, parameters: Array, body: Block?): ConstructorDeclaration + fun updateConstructorDeclaration(node: ConstructorDeclaration, decorators: Array?, modifiers: Array?, parameters: Array, body: Block?): ConstructorDeclaration + fun createGetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: String, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun createGetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun createGetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun createGetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: NumericLiteral, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun createGetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: ComputedPropertyName, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun createGetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: PrivateIdentifier, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: NumericLiteral, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: ComputedPropertyName, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun updateGetAccessorDeclaration(node: GetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: PrivateIdentifier, parameters: Array, type: TypeNode?, body: Block?): GetAccessorDeclaration + fun createSetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: String, parameters: Array, body: Block?): SetAccessorDeclaration + fun createSetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, parameters: Array, body: Block?): SetAccessorDeclaration + fun createSetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, parameters: Array, body: Block?): SetAccessorDeclaration + fun createSetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: NumericLiteral, parameters: Array, body: Block?): SetAccessorDeclaration + fun createSetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: ComputedPropertyName, parameters: Array, body: Block?): SetAccessorDeclaration + fun createSetAccessorDeclaration(decorators: Array?, modifiers: Array?, name: PrivateIdentifier, parameters: Array, body: Block?): SetAccessorDeclaration + fun updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, parameters: Array, body: Block?): SetAccessorDeclaration + fun updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, parameters: Array, body: Block?): SetAccessorDeclaration + fun updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: NumericLiteral, parameters: Array, body: Block?): SetAccessorDeclaration + fun updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: ComputedPropertyName, parameters: Array, body: Block?): SetAccessorDeclaration + fun updateSetAccessorDeclaration(node: SetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: PrivateIdentifier, parameters: Array, body: Block?): SetAccessorDeclaration + fun createCallSignature(typeParameters: Array?, parameters: Array, type: TypeNode?): CallSignatureDeclaration + fun updateCallSignature(node: CallSignatureDeclaration, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?): CallSignatureDeclaration + fun createConstructSignature(typeParameters: Array?, parameters: Array, type: TypeNode?): ConstructSignatureDeclaration + fun updateConstructSignature(node: ConstructSignatureDeclaration, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?): ConstructSignatureDeclaration + fun createIndexSignature(decorators: Array?, modifiers: Array?, parameters: Array, type: TypeNode): IndexSignatureDeclaration + fun updateIndexSignature(node: IndexSignatureDeclaration, decorators: Array?, modifiers: Array?, parameters: Array, type: TypeNode): IndexSignatureDeclaration + fun createTemplateLiteralTypeSpan(type: TypeNode, literal: TemplateMiddle): TemplateLiteralTypeSpan + fun createTemplateLiteralTypeSpan(type: TypeNode, literal: TemplateTail): TemplateLiteralTypeSpan + fun updateTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, type: TypeNode, literal: TemplateMiddle): TemplateLiteralTypeSpan + fun updateTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, type: TypeNode, literal: TemplateTail): TemplateLiteralTypeSpan + fun createClassStaticBlockDeclaration(decorators: Array?, modifiers: Array?, body: Block): ClassStaticBlockDeclaration + fun updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, decorators: Array?, modifiers: Array?, body: Block): ClassStaticBlockDeclaration + fun createKeywordTypeNode(kind: TKind): KeywordTypeNode + fun createTypePredicateNode(assertsModifier: AssertsKeyword?, parameterName: Identifier, type: TypeNode?): TypePredicateNode + fun createTypePredicateNode(assertsModifier: AssertsKeyword?, parameterName: ThisTypeNode, type: TypeNode?): TypePredicateNode + fun createTypePredicateNode(assertsModifier: AssertsKeyword?, parameterName: String, type: TypeNode?): TypePredicateNode + fun updateTypePredicateNode(node: TypePredicateNode, assertsModifier: AssertsKeyword?, parameterName: Identifier, type: TypeNode?): TypePredicateNode + fun updateTypePredicateNode(node: TypePredicateNode, assertsModifier: AssertsKeyword?, parameterName: ThisTypeNode, type: TypeNode?): TypePredicateNode + fun createTypeReferenceNode(typeName: String, typeArguments: Array = definedExternally): TypeReferenceNode + fun createTypeReferenceNode(typeName: String): TypeReferenceNode + fun createTypeReferenceNode(typeName: Identifier, typeArguments: Array = definedExternally): TypeReferenceNode + fun createTypeReferenceNode(typeName: Identifier): TypeReferenceNode + fun createTypeReferenceNode(typeName: QualifiedName, typeArguments: Array = definedExternally): TypeReferenceNode + fun createTypeReferenceNode(typeName: QualifiedName): TypeReferenceNode + fun updateTypeReferenceNode(node: TypeReferenceNode, typeName: Identifier, typeArguments: NodeArray?): TypeReferenceNode + fun updateTypeReferenceNode(node: TypeReferenceNode, typeName: QualifiedName, typeArguments: NodeArray?): TypeReferenceNode + fun createFunctionTypeNode(typeParameters: Array?, parameters: Array, type: TypeNode): FunctionTypeNode + fun updateFunctionTypeNode(node: FunctionTypeNode, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode): FunctionTypeNode + fun createConstructorTypeNode(modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode): ConstructorTypeNode + fun createConstructorTypeNode(typeParameters: Array?, parameters: Array, type: TypeNode): ConstructorTypeNode + fun updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: Array?, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode): ConstructorTypeNode + fun updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode): ConstructorTypeNode + fun createTypeQueryNode(exprName: Identifier): TypeQueryNode + fun createTypeQueryNode(exprName: QualifiedName): TypeQueryNode + fun updateTypeQueryNode(node: TypeQueryNode, exprName: Identifier): TypeQueryNode + fun updateTypeQueryNode(node: TypeQueryNode, exprName: QualifiedName): TypeQueryNode + fun createTypeLiteralNode(members: Array?): TypeLiteralNode + fun updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray): TypeLiteralNode + fun createArrayTypeNode(elementType: TypeNode): ArrayTypeNode + fun updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode + fun createTupleTypeNode(elements: Array): TupleTypeNode + fun updateTupleTypeNode(node: TupleTypeNode, elements: Array): TupleTypeNode + fun createNamedTupleMember(dotDotDotToken: DotDotDotToken?, name: Identifier, questionToken: QuestionToken?, type: TypeNode): NamedTupleMember + fun updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: DotDotDotToken?, name: Identifier, questionToken: QuestionToken?, type: TypeNode): NamedTupleMember + fun createOptionalTypeNode(type: TypeNode): OptionalTypeNode + fun updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode + fun createRestTypeNode(type: TypeNode): RestTypeNode + fun updateRestTypeNode(node: RestTypeNode, type: TypeNode): RestTypeNode + fun createUnionTypeNode(types: Array): UnionTypeNode + fun updateUnionTypeNode(node: UnionTypeNode, types: NodeArray): UnionTypeNode + fun createIntersectionTypeNode(types: Array): IntersectionTypeNode + fun updateIntersectionTypeNode(node: IntersectionTypeNode, types: NodeArray): IntersectionTypeNode + fun createConditionalTypeNode(checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode + fun updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode + fun createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode + fun updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode + fun createImportTypeNode(argument: TypeNode, qualifier: Identifier = definedExternally, typeArguments: Array = definedExternally, isTypeOf: Boolean = definedExternally): ImportTypeNode + fun createImportTypeNode(argument: TypeNode): ImportTypeNode + fun createImportTypeNode(argument: TypeNode, qualifier: Identifier = definedExternally): ImportTypeNode + fun createImportTypeNode(argument: TypeNode, qualifier: Identifier = definedExternally, typeArguments: Array = definedExternally): ImportTypeNode + fun createImportTypeNode(argument: TypeNode, qualifier: QualifiedName = definedExternally, typeArguments: Array = definedExternally, isTypeOf: Boolean = definedExternally): ImportTypeNode + fun createImportTypeNode(argument: TypeNode, qualifier: QualifiedName = definedExternally): ImportTypeNode + fun createImportTypeNode(argument: TypeNode, qualifier: QualifiedName = definedExternally, typeArguments: Array = definedExternally): ImportTypeNode + fun updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: Identifier?, typeArguments: Array?, isTypeOf: Boolean = definedExternally): ImportTypeNode + fun updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: Identifier?, typeArguments: Array?): ImportTypeNode + fun updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: QualifiedName?, typeArguments: Array?, isTypeOf: Boolean = definedExternally): ImportTypeNode + fun updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: QualifiedName?, typeArguments: Array?): ImportTypeNode + fun createParenthesizedType(type: TypeNode): ParenthesizedTypeNode + fun updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode + fun createThisTypeNode(): ThisTypeNode + fun createTypeOperatorNode(operator: SyntaxKind.KeyOfKeyword, type: TypeNode): TypeOperatorNode + fun createTypeOperatorNode(operator: SyntaxKind.UniqueKeyword, type: TypeNode): TypeOperatorNode + fun createTypeOperatorNode(operator: SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode + fun updateTypeOperatorNode(node: TypeOperatorNode, type: TypeNode): TypeOperatorNode + fun createIndexedAccessTypeNode(objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode + fun updateIndexedAccessTypeNode(node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode + fun createMappedTypeNode(readonlyToken: ReadonlyKeyword?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: QuestionToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: ReadonlyKeyword?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: PlusToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: ReadonlyKeyword?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: MinusToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: PlusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: QuestionToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: PlusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: PlusToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: PlusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: MinusToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: MinusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: QuestionToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: MinusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: PlusToken?, type: TypeNode?): MappedTypeNode + fun createMappedTypeNode(readonlyToken: MinusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: MinusToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: QuestionToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: PlusToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: MinusToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: PlusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: QuestionToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: PlusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: PlusToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: PlusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: MinusToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: MinusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: QuestionToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: MinusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: PlusToken?, type: TypeNode?): MappedTypeNode + fun updateMappedTypeNode(node: MappedTypeNode, readonlyToken: MinusToken?, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: MinusToken?, type: TypeNode?): MappedTypeNode + fun createLiteralTypeNode(literal: NullLiteral): LiteralTypeNode + fun createLiteralTypeNode(literal: TrueLiteral): LiteralTypeNode + fun createLiteralTypeNode(literal: FalseLiteral): LiteralTypeNode + fun createLiteralTypeNode(literal: LiteralExpression): LiteralTypeNode + fun createLiteralTypeNode(literal: PrefixUnaryExpression): LiteralTypeNode + fun updateLiteralTypeNode(node: LiteralTypeNode, literal: NullLiteral): LiteralTypeNode + fun updateLiteralTypeNode(node: LiteralTypeNode, literal: TrueLiteral): LiteralTypeNode + fun updateLiteralTypeNode(node: LiteralTypeNode, literal: FalseLiteral): LiteralTypeNode + fun updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralExpression): LiteralTypeNode + fun updateLiteralTypeNode(node: LiteralTypeNode, literal: PrefixUnaryExpression): LiteralTypeNode + fun createTemplateLiteralType(head: TemplateHead, templateSpans: Array): TemplateLiteralTypeNode + fun updateTemplateLiteralType(node: TemplateLiteralTypeNode, head: TemplateHead, templateSpans: Array): TemplateLiteralTypeNode + fun createObjectBindingPattern(elements: Array): ObjectBindingPattern + fun updateObjectBindingPattern(node: ObjectBindingPattern, elements: Array): ObjectBindingPattern + fun createArrayBindingPattern(elements: Array): ArrayBindingPattern + fun updateArrayBindingPattern(node: ArrayBindingPattern, elements: Array): ArrayBindingPattern + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: String?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression = definedExternally): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: String?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: Identifier?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression = definedExternally): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: Identifier?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: StringLiteral?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression = definedExternally): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: StringLiteral?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: NumericLiteral?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression = definedExternally): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: NumericLiteral?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: ComputedPropertyName?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression = definedExternally): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: ComputedPropertyName?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: PrivateIdentifier?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression = definedExternally): BindingElement + fun createBindingElement(dotDotDotToken: DotDotDotToken?, propertyName: PrivateIdentifier?, name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: Identifier?, name: Identifier, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: Identifier?, name: ObjectBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: Identifier?, name: ArrayBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: StringLiteral?, name: Identifier, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: StringLiteral?, name: ObjectBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: StringLiteral?, name: ArrayBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: NumericLiteral?, name: Identifier, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: NumericLiteral?, name: ObjectBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: NumericLiteral?, name: ArrayBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: ComputedPropertyName?, name: Identifier, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: ComputedPropertyName?, name: ObjectBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: ComputedPropertyName?, name: ArrayBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: PrivateIdentifier?, name: Identifier, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: PrivateIdentifier?, name: ObjectBindingPattern, initializer: Expression?): BindingElement + fun updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: PrivateIdentifier?, name: ArrayBindingPattern, initializer: Expression?): BindingElement + fun createArrayLiteralExpression(elements: Array = definedExternally, multiLine: Boolean = definedExternally): ArrayLiteralExpression + fun updateArrayLiteralExpression(node: ArrayLiteralExpression, elements: Array): ArrayLiteralExpression + fun createObjectLiteralExpression(properties: Array = definedExternally, multiLine: Boolean = definedExternally): ObjectLiteralExpression + fun updateObjectLiteralExpression(node: ObjectLiteralExpression, properties: Array): ObjectLiteralExpression + fun createPropertyAccessExpression(expression: Expression, name: String): PropertyAccessExpression + fun createPropertyAccessExpression(expression: Expression, name: Identifier): PropertyAccessExpression + fun createPropertyAccessExpression(expression: Expression, name: PrivateIdentifier): PropertyAccessExpression + fun updatePropertyAccessExpression(node: PropertyAccessExpression, expression: Expression, name: Identifier): PropertyAccessExpression + fun updatePropertyAccessExpression(node: PropertyAccessExpression, expression: Expression, name: PrivateIdentifier): PropertyAccessExpression + fun createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken?, name: String): PropertyAccessChain + fun createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken?, name: Identifier): PropertyAccessChain + fun createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken?, name: PrivateIdentifier): PropertyAccessChain + fun updatePropertyAccessChain(node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken?, name: Identifier): PropertyAccessChain + fun updatePropertyAccessChain(node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken?, name: PrivateIdentifier): PropertyAccessChain + fun createElementAccessExpression(expression: Expression, index: Number): ElementAccessExpression + fun createElementAccessExpression(expression: Expression, index: Expression): ElementAccessExpression + fun updateElementAccessExpression(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression + fun createElementAccessChain(expression: Expression, questionDotToken: QuestionDotToken?, index: Number): ElementAccessChain + fun createElementAccessChain(expression: Expression, questionDotToken: QuestionDotToken?, index: Expression): ElementAccessChain + fun updateElementAccessChain(node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken?, argumentExpression: Expression): ElementAccessChain + fun createCallExpression(expression: Expression, typeArguments: Array?, argumentsArray: Array?): CallExpression + fun updateCallExpression(node: CallExpression, expression: Expression, typeArguments: Array?, argumentsArray: Array): CallExpression + fun createCallChain(expression: Expression, questionDotToken: QuestionDotToken?, typeArguments: Array?, argumentsArray: Array?): CallChain + fun updateCallChain(node: CallChain, expression: Expression, questionDotToken: QuestionDotToken?, typeArguments: Array?, argumentsArray: Array): CallChain + fun createNewExpression(expression: Expression, typeArguments: Array?, argumentsArray: Array?): NewExpression + fun updateNewExpression(node: NewExpression, expression: Expression, typeArguments: Array?, argumentsArray: Array?): NewExpression + fun createTaggedTemplateExpression(tag: Expression, typeArguments: Array?, template: TemplateExpression): TaggedTemplateExpression + fun createTaggedTemplateExpression(tag: Expression, typeArguments: Array?, template: NoSubstitutionTemplateLiteral): TaggedTemplateExpression + fun updateTaggedTemplateExpression(node: TaggedTemplateExpression, tag: Expression, typeArguments: Array?, template: TemplateExpression): TaggedTemplateExpression + fun updateTaggedTemplateExpression(node: TaggedTemplateExpression, tag: Expression, typeArguments: Array?, template: NoSubstitutionTemplateLiteral): TaggedTemplateExpression + fun createTypeAssertion(type: TypeNode, expression: Expression): TypeAssertion + fun updateTypeAssertion(node: TypeAssertion, type: TypeNode, expression: Expression): TypeAssertion + fun createParenthesizedExpression(expression: Expression): ParenthesizedExpression + fun updateParenthesizedExpression(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression + fun createFunctionExpression(modifiers: Array?, asteriskToken: AsteriskToken?, name: String?, typeParameters: Array?, parameters: Array?, type: TypeNode?, body: Block): FunctionExpression + fun createFunctionExpression(modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier?, typeParameters: Array?, parameters: Array?, type: TypeNode?, body: Block): FunctionExpression + fun updateFunctionExpression(node: FunctionExpression, modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block): FunctionExpression + fun createArrowFunction(modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, equalsGreaterThanToken: EqualsGreaterThanToken?, body: FunctionBody): ArrowFunction + fun createArrowFunction(modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, equalsGreaterThanToken: EqualsGreaterThanToken?, body: Expression): ArrowFunction + fun updateArrowFunction(node: ArrowFunction, modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, equalsGreaterThanToken: EqualsGreaterThanToken, body: FunctionBody): ArrowFunction + fun updateArrowFunction(node: ArrowFunction, modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, equalsGreaterThanToken: EqualsGreaterThanToken, body: Expression): ArrowFunction + fun createDeleteExpression(expression: Expression): DeleteExpression + fun updateDeleteExpression(node: DeleteExpression, expression: Expression): DeleteExpression + fun createTypeOfExpression(expression: Expression): TypeOfExpression + fun updateTypeOfExpression(node: TypeOfExpression, expression: Expression): TypeOfExpression + fun createVoidExpression(expression: Expression): VoidExpression + fun updateVoidExpression(node: VoidExpression, expression: Expression): VoidExpression + fun createAwaitExpression(expression: Expression): AwaitExpression + fun updateAwaitExpression(node: AwaitExpression, expression: Expression): AwaitExpression + fun createPrefixUnaryExpression(operator: SyntaxKind.PlusPlusToken, operand: Expression): PrefixUnaryExpression + fun createPrefixUnaryExpression(operator: SyntaxKind.MinusMinusToken, operand: Expression): PrefixUnaryExpression + fun createPrefixUnaryExpression(operator: SyntaxKind.PlusToken, operand: Expression): PrefixUnaryExpression + fun createPrefixUnaryExpression(operator: SyntaxKind.MinusToken, operand: Expression): PrefixUnaryExpression + fun createPrefixUnaryExpression(operator: SyntaxKind.TildeToken, operand: Expression): PrefixUnaryExpression + fun createPrefixUnaryExpression(operator: SyntaxKind.ExclamationToken, operand: Expression): PrefixUnaryExpression + fun updatePrefixUnaryExpression(node: PrefixUnaryExpression, operand: Expression): PrefixUnaryExpression + fun createPostfixUnaryExpression(operand: Expression, operator: SyntaxKind.PlusPlusToken): PostfixUnaryExpression + fun createPostfixUnaryExpression(operand: Expression, operator: SyntaxKind.MinusMinusToken): PostfixUnaryExpression + fun updatePostfixUnaryExpression(node: PostfixUnaryExpression, operand: Expression): PostfixUnaryExpression + fun createBinaryExpression(left: Expression, operator: Any /* SyntaxKind.QuestionQuestionToken | ExponentiationOperator | SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword | SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.QuestionQuestionEqualsToken | SyntaxKind.CommaToken | BinaryOperatorToken */, right: Expression): BinaryExpression + fun updateBinaryExpression(node: BinaryExpression, left: Expression, operator: Any /* SyntaxKind.QuestionQuestionToken | ExponentiationOperator | SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword | SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.QuestionQuestionEqualsToken | SyntaxKind.CommaToken | BinaryOperatorToken */, right: Expression): BinaryExpression + fun createConditionalExpression(condition: Expression, questionToken: QuestionToken?, whenTrue: Expression, colonToken: ColonToken?, whenFalse: Expression): ConditionalExpression + fun updateConditionalExpression(node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression + fun createTemplateExpression(head: TemplateHead, templateSpans: Array): TemplateExpression + fun updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: Array): TemplateExpression + fun createTemplateHead(text: String, rawText: String = definedExternally, templateFlags: TokenFlags = definedExternally): TemplateHead + fun createTemplateHead(text: String): TemplateHead + fun createTemplateHead(text: String, rawText: String = definedExternally): TemplateHead + fun createTemplateHead(text: String?, rawText: String, templateFlags: TokenFlags = definedExternally): TemplateHead + fun createTemplateHead(text: String?, rawText: String): TemplateHead + fun createTemplateMiddle(text: String, rawText: String = definedExternally, templateFlags: TokenFlags = definedExternally): TemplateMiddle + fun createTemplateMiddle(text: String): TemplateMiddle + fun createTemplateMiddle(text: String, rawText: String = definedExternally): TemplateMiddle + fun createTemplateMiddle(text: String?, rawText: String, templateFlags: TokenFlags = definedExternally): TemplateMiddle + fun createTemplateMiddle(text: String?, rawText: String): TemplateMiddle + fun createTemplateTail(text: String, rawText: String = definedExternally, templateFlags: TokenFlags = definedExternally): TemplateTail + fun createTemplateTail(text: String): TemplateTail + fun createTemplateTail(text: String, rawText: String = definedExternally): TemplateTail + fun createTemplateTail(text: String?, rawText: String, templateFlags: TokenFlags = definedExternally): TemplateTail + fun createTemplateTail(text: String?, rawText: String): TemplateTail + fun createNoSubstitutionTemplateLiteral(text: String, rawText: String = definedExternally): NoSubstitutionTemplateLiteral + fun createNoSubstitutionTemplateLiteral(text: String): NoSubstitutionTemplateLiteral + fun createNoSubstitutionTemplateLiteral(text: String?, rawText: String): NoSubstitutionTemplateLiteral + fun createYieldExpression(asteriskToken: AsteriskToken, expression: Expression): YieldExpression + fun createYieldExpression(asteriskToken: Nothing?, expression: Expression?): YieldExpression + fun updateYieldExpression(node: YieldExpression, asteriskToken: AsteriskToken?, expression: Expression?): YieldExpression + fun createSpreadElement(expression: Expression): SpreadElement + fun updateSpreadElement(node: SpreadElement, expression: Expression): SpreadElement + fun createClassExpression(decorators: Array?, modifiers: Array?, name: String?, typeParameters: Array?, heritageClauses: Array?, members: Array): ClassExpression + fun createClassExpression(decorators: Array?, modifiers: Array?, name: Identifier?, typeParameters: Array?, heritageClauses: Array?, members: Array): ClassExpression + fun updateClassExpression(node: ClassExpression, decorators: Array?, modifiers: Array?, name: Identifier?, typeParameters: Array?, heritageClauses: Array?, members: Array): ClassExpression + fun createOmittedExpression(): OmittedExpression + fun createExpressionWithTypeArguments(expression: Expression, typeArguments: Array?): ExpressionWithTypeArguments + fun updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, expression: Expression, typeArguments: Array?): ExpressionWithTypeArguments + fun createAsExpression(expression: Expression, type: TypeNode): AsExpression + fun updateAsExpression(node: AsExpression, expression: Expression, type: TypeNode): AsExpression + fun createNonNullExpression(expression: Expression): NonNullExpression + fun updateNonNullExpression(node: NonNullExpression, expression: Expression): NonNullExpression + fun createNonNullChain(expression: Expression): NonNullChain + fun updateNonNullChain(node: NonNullChain, expression: Expression): NonNullChain + fun createMetaProperty(keywordToken: SyntaxKind.NewKeyword, name: Identifier): MetaProperty + fun createMetaProperty(keywordToken: SyntaxKind.ImportKeyword, name: Identifier): MetaProperty + fun updateMetaProperty(node: MetaProperty, name: Identifier): MetaProperty + fun createTemplateSpan(expression: Expression, literal: TemplateMiddle): TemplateSpan + fun createTemplateSpan(expression: Expression, literal: TemplateTail): TemplateSpan + fun updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle): TemplateSpan + fun updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateTail): TemplateSpan + fun createSemicolonClassElement(): SemicolonClassElement + fun createBlock(statements: Array, multiLine: Boolean = definedExternally): Block + fun updateBlock(node: Block, statements: Array): Block + fun createVariableStatement(modifiers: Array?, declarationList: VariableDeclarationList): VariableStatement + fun createVariableStatement(modifiers: Array?, declarationList: Array): VariableStatement + fun updateVariableStatement(node: VariableStatement, modifiers: Array?, declarationList: VariableDeclarationList): VariableStatement + fun createEmptyStatement(): EmptyStatement + fun createExpressionStatement(expression: Expression): ExpressionStatement + fun updateExpressionStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement + fun createIfStatement(expression: Expression, thenStatement: Statement, elseStatement: Statement = definedExternally): IfStatement + fun updateIfStatement(node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement?): IfStatement + fun createDoStatement(statement: Statement, expression: Expression): DoStatement + fun updateDoStatement(node: DoStatement, statement: Statement, expression: Expression): DoStatement + fun createWhileStatement(expression: Expression, statement: Statement): WhileStatement + fun updateWhileStatement(node: WhileStatement, expression: Expression, statement: Statement): WhileStatement + fun createForStatement(initializer: VariableDeclarationList?, condition: Expression?, incrementor: Expression?, statement: Statement): ForStatement + fun createForStatement(initializer: Expression?, condition: Expression?, incrementor: Expression?, statement: Statement): ForStatement + fun updateForStatement(node: ForStatement, initializer: VariableDeclarationList?, condition: Expression?, incrementor: Expression?, statement: Statement): ForStatement + fun updateForStatement(node: ForStatement, initializer: Expression?, condition: Expression?, incrementor: Expression?, statement: Statement): ForStatement + fun createForInStatement(initializer: VariableDeclarationList, expression: Expression, statement: Statement): ForInStatement + fun createForInStatement(initializer: Expression, expression: Expression, statement: Statement): ForInStatement + fun updateForInStatement(node: ForInStatement, initializer: VariableDeclarationList, expression: Expression, statement: Statement): ForInStatement + fun updateForInStatement(node: ForInStatement, initializer: Expression, expression: Expression, statement: Statement): ForInStatement + fun createForOfStatement(awaitModifier: AwaitKeyword?, initializer: VariableDeclarationList, expression: Expression, statement: Statement): ForOfStatement + fun createForOfStatement(awaitModifier: AwaitKeyword?, initializer: Expression, expression: Expression, statement: Statement): ForOfStatement + fun updateForOfStatement(node: ForOfStatement, awaitModifier: AwaitKeyword?, initializer: VariableDeclarationList, expression: Expression, statement: Statement): ForOfStatement + fun updateForOfStatement(node: ForOfStatement, awaitModifier: AwaitKeyword?, initializer: Expression, expression: Expression, statement: Statement): ForOfStatement + fun createContinueStatement(label: String = definedExternally): ContinueStatement + fun createContinueStatement(): ContinueStatement + fun createContinueStatement(label: Identifier = definedExternally): ContinueStatement + fun updateContinueStatement(node: ContinueStatement, label: Identifier?): ContinueStatement + fun createBreakStatement(label: String = definedExternally): BreakStatement + fun createBreakStatement(): BreakStatement + fun createBreakStatement(label: Identifier = definedExternally): BreakStatement + fun updateBreakStatement(node: BreakStatement, label: Identifier?): BreakStatement + fun createReturnStatement(expression: Expression = definedExternally): ReturnStatement + fun updateReturnStatement(node: ReturnStatement, expression: Expression?): ReturnStatement + fun createWithStatement(expression: Expression, statement: Statement): WithStatement + fun updateWithStatement(node: WithStatement, expression: Expression, statement: Statement): WithStatement + fun createSwitchStatement(expression: Expression, caseBlock: CaseBlock): SwitchStatement + fun updateSwitchStatement(node: SwitchStatement, expression: Expression, caseBlock: CaseBlock): SwitchStatement + fun createLabeledStatement(label: String, statement: Statement): LabeledStatement + fun createLabeledStatement(label: Identifier, statement: Statement): LabeledStatement + fun updateLabeledStatement(node: LabeledStatement, label: Identifier, statement: Statement): LabeledStatement + fun createThrowStatement(expression: Expression): ThrowStatement + fun updateThrowStatement(node: ThrowStatement, expression: Expression): ThrowStatement + fun createTryStatement(tryBlock: Block, catchClause: CatchClause?, finallyBlock: Block?): TryStatement + fun updateTryStatement(node: TryStatement, tryBlock: Block, catchClause: CatchClause?, finallyBlock: Block?): TryStatement + fun createDebuggerStatement(): DebuggerStatement + fun createVariableDeclaration(name: String, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: String): VariableDeclaration + fun createVariableDeclaration(name: String, exclamationToken: ExclamationToken = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: String, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: Identifier, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: Identifier): VariableDeclaration + fun createVariableDeclaration(name: Identifier, exclamationToken: ExclamationToken = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: Identifier, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: ObjectBindingPattern, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: ObjectBindingPattern): VariableDeclaration + fun createVariableDeclaration(name: ObjectBindingPattern, exclamationToken: ExclamationToken = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: ObjectBindingPattern, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: ArrayBindingPattern, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally, initializer: Expression = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: ArrayBindingPattern): VariableDeclaration + fun createVariableDeclaration(name: ArrayBindingPattern, exclamationToken: ExclamationToken = definedExternally): VariableDeclaration + fun createVariableDeclaration(name: ArrayBindingPattern, exclamationToken: ExclamationToken = definedExternally, type: TypeNode = definedExternally): VariableDeclaration + fun updateVariableDeclaration(node: VariableDeclaration, name: Identifier, exclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): VariableDeclaration + fun updateVariableDeclaration(node: VariableDeclaration, name: ObjectBindingPattern, exclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): VariableDeclaration + fun updateVariableDeclaration(node: VariableDeclaration, name: ArrayBindingPattern, exclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): VariableDeclaration + fun createVariableDeclarationList(declarations: Array, flags: NodeFlags = definedExternally): VariableDeclarationList + fun updateVariableDeclarationList(node: VariableDeclarationList, declarations: Array): VariableDeclarationList + fun createFunctionDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: String?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): FunctionDeclaration + fun createFunctionDeclaration(decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): FunctionDeclaration + fun updateFunctionDeclaration(node: FunctionDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?): FunctionDeclaration + fun createClassDeclaration(decorators: Array?, modifiers: Array?, name: String?, typeParameters: Array?, heritageClauses: Array?, members: Array): ClassDeclaration + fun createClassDeclaration(decorators: Array?, modifiers: Array?, name: Identifier?, typeParameters: Array?, heritageClauses: Array?, members: Array): ClassDeclaration + fun updateClassDeclaration(node: ClassDeclaration, decorators: Array?, modifiers: Array?, name: Identifier?, typeParameters: Array?, heritageClauses: Array?, members: Array): ClassDeclaration + fun createInterfaceDeclaration(decorators: Array?, modifiers: Array?, name: String, typeParameters: Array?, heritageClauses: Array?, members: Array): InterfaceDeclaration + fun createInterfaceDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, typeParameters: Array?, heritageClauses: Array?, members: Array): InterfaceDeclaration + fun updateInterfaceDeclaration(node: InterfaceDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, typeParameters: Array?, heritageClauses: Array?, members: Array): InterfaceDeclaration + fun createTypeAliasDeclaration(decorators: Array?, modifiers: Array?, name: String, typeParameters: Array?, type: TypeNode): TypeAliasDeclaration + fun createTypeAliasDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, typeParameters: Array?, type: TypeNode): TypeAliasDeclaration + fun updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, typeParameters: Array?, type: TypeNode): TypeAliasDeclaration + fun createEnumDeclaration(decorators: Array?, modifiers: Array?, name: String, members: Array): EnumDeclaration + fun createEnumDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, members: Array): EnumDeclaration + fun updateEnumDeclaration(node: EnumDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, members: Array): EnumDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: ModuleBlock?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: ModuleBlock?): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: NamespaceDeclaration?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: NamespaceDeclaration?): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: Identifier?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: Identifier?): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: JSDocNamespaceDeclaration?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: Identifier, body: JSDocNamespaceDeclaration?): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: ModuleBlock?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: ModuleBlock?): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: NamespaceDeclaration?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: NamespaceDeclaration?): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: Identifier?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: Identifier?): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: JSDocNamespaceDeclaration?, flags: NodeFlags = definedExternally): ModuleDeclaration + fun createModuleDeclaration(decorators: Array?, modifiers: Array?, name: StringLiteral, body: JSDocNamespaceDeclaration?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, body: ModuleBlock?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, body: NamespaceDeclaration?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, body: Identifier?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, body: JSDocNamespaceDeclaration?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, body: ModuleBlock?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, body: NamespaceDeclaration?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, body: Identifier?): ModuleDeclaration + fun updateModuleDeclaration(node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: StringLiteral, body: JSDocNamespaceDeclaration?): ModuleDeclaration + fun createModuleBlock(statements: Array): ModuleBlock + fun updateModuleBlock(node: ModuleBlock, statements: Array): ModuleBlock + fun createCaseBlock(clauses: Array): CaseBlock + fun updateCaseBlock(node: CaseBlock, clauses: Array): CaseBlock + fun createNamespaceExportDeclaration(name: String): NamespaceExportDeclaration + fun createNamespaceExportDeclaration(name: Identifier): NamespaceExportDeclaration + fun updateNamespaceExportDeclaration(node: NamespaceExportDeclaration, name: Identifier): NamespaceExportDeclaration + fun createImportEqualsDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: String, moduleReference: Identifier): ImportEqualsDeclaration + fun createImportEqualsDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: String, moduleReference: QualifiedName): ImportEqualsDeclaration + fun createImportEqualsDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: String, moduleReference: ExternalModuleReference): ImportEqualsDeclaration + fun createImportEqualsDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: Identifier, moduleReference: Identifier): ImportEqualsDeclaration + fun createImportEqualsDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: Identifier, moduleReference: QualifiedName): ImportEqualsDeclaration + fun createImportEqualsDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: Identifier, moduleReference: ExternalModuleReference): ImportEqualsDeclaration + fun updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: Identifier, moduleReference: Identifier): ImportEqualsDeclaration + fun updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: Identifier, moduleReference: QualifiedName): ImportEqualsDeclaration + fun updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: Identifier, moduleReference: ExternalModuleReference): ImportEqualsDeclaration + fun createImportDeclaration(decorators: Array?, modifiers: Array?, importClause: ImportClause?, moduleSpecifier: Expression): ImportDeclaration + fun updateImportDeclaration(node: ImportDeclaration, decorators: Array?, modifiers: Array?, importClause: ImportClause?, moduleSpecifier: Expression): ImportDeclaration + fun createImportClause(isTypeOnly: Boolean, name: Identifier?, namedBindings: NamespaceImport?): ImportClause + fun createImportClause(isTypeOnly: Boolean, name: Identifier?, namedBindings: NamedImports?): ImportClause + fun updateImportClause(node: ImportClause, isTypeOnly: Boolean, name: Identifier?, namedBindings: NamespaceImport?): ImportClause + fun updateImportClause(node: ImportClause, isTypeOnly: Boolean, name: Identifier?, namedBindings: NamedImports?): ImportClause + fun createNamespaceImport(name: Identifier): NamespaceImport + fun updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport + fun createNamespaceExport(name: Identifier): NamespaceExport + fun updateNamespaceExport(node: NamespaceExport, name: Identifier): NamespaceExport + fun createNamedImports(elements: Array): NamedImports + fun updateNamedImports(node: NamedImports, elements: Array): NamedImports + fun createImportSpecifier(propertyName: Identifier?, name: Identifier): ImportSpecifier + fun updateImportSpecifier(node: ImportSpecifier, propertyName: Identifier?, name: Identifier): ImportSpecifier + fun createExportAssignment(decorators: Array?, modifiers: Array?, isExportEquals: Boolean?, expression: Expression): ExportAssignment + fun updateExportAssignment(node: ExportAssignment, decorators: Array?, modifiers: Array?, expression: Expression): ExportAssignment + fun createExportDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, exportClause: NamespaceExport?, moduleSpecifier: Expression = definedExternally): ExportDeclaration + fun createExportDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, exportClause: NamespaceExport?): ExportDeclaration + fun createExportDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, exportClause: NamedExports?, moduleSpecifier: Expression = definedExternally): ExportDeclaration + fun createExportDeclaration(decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, exportClause: NamedExports?): ExportDeclaration + fun updateExportDeclaration(node: ExportDeclaration, decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, exportClause: NamespaceExport?, moduleSpecifier: Expression?): ExportDeclaration + fun updateExportDeclaration(node: ExportDeclaration, decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, exportClause: NamedExports?, moduleSpecifier: Expression?): ExportDeclaration + fun createNamedExports(elements: Array): NamedExports + fun updateNamedExports(node: NamedExports, elements: Array): NamedExports + fun createExportSpecifier(propertyName: String?, name: String): ExportSpecifier + fun createExportSpecifier(propertyName: String?, name: Identifier): ExportSpecifier + fun createExportSpecifier(propertyName: Identifier?, name: String): ExportSpecifier + fun createExportSpecifier(propertyName: Identifier?, name: Identifier): ExportSpecifier + fun updateExportSpecifier(node: ExportSpecifier, propertyName: Identifier?, name: Identifier): ExportSpecifier + fun createExternalModuleReference(expression: Expression): ExternalModuleReference + fun updateExternalModuleReference(node: ExternalModuleReference, expression: Expression): ExternalModuleReference + fun createJSDocAllType(): JSDocAllType + fun createJSDocUnknownType(): JSDocUnknownType + fun createJSDocNonNullableType(type: TypeNode): JSDocNonNullableType + fun updateJSDocNonNullableType(node: JSDocNonNullableType, type: TypeNode): JSDocNonNullableType + fun createJSDocNullableType(type: TypeNode): JSDocNullableType + fun updateJSDocNullableType(node: JSDocNullableType, type: TypeNode): JSDocNullableType + fun createJSDocOptionalType(type: TypeNode): JSDocOptionalType + fun updateJSDocOptionalType(node: JSDocOptionalType, type: TypeNode): JSDocOptionalType + fun createJSDocFunctionType(parameters: Array, type: TypeNode?): JSDocFunctionType + fun updateJSDocFunctionType(node: JSDocFunctionType, parameters: Array, type: TypeNode?): JSDocFunctionType + fun createJSDocVariadicType(type: TypeNode): JSDocVariadicType + fun updateJSDocVariadicType(node: JSDocVariadicType, type: TypeNode): JSDocVariadicType + fun createJSDocNamepathType(type: TypeNode): JSDocNamepathType + fun updateJSDocNamepathType(node: JSDocNamepathType, type: TypeNode): JSDocNamepathType + fun createJSDocTypeExpression(type: TypeNode): JSDocTypeExpression + fun updateJSDocTypeExpression(node: JSDocTypeExpression, type: TypeNode): JSDocTypeExpression + fun createJSDocNameReference(name: Identifier): JSDocNameReference + fun createJSDocNameReference(name: QualifiedName): JSDocNameReference + fun createJSDocNameReference(name: JSDocMemberName): JSDocNameReference + fun updateJSDocNameReference(node: JSDocNameReference, name: Identifier): JSDocNameReference + fun updateJSDocNameReference(node: JSDocNameReference, name: QualifiedName): JSDocNameReference + fun updateJSDocNameReference(node: JSDocNameReference, name: JSDocMemberName): JSDocNameReference + fun createJSDocMemberName(left: Identifier, right: Identifier): JSDocMemberName + fun createJSDocMemberName(left: QualifiedName, right: Identifier): JSDocMemberName + fun createJSDocMemberName(left: JSDocMemberName, right: Identifier): JSDocMemberName + fun updateJSDocMemberName(node: JSDocMemberName, left: Identifier, right: Identifier): JSDocMemberName + fun updateJSDocMemberName(node: JSDocMemberName, left: QualifiedName, right: Identifier): JSDocMemberName + fun updateJSDocMemberName(node: JSDocMemberName, left: JSDocMemberName, right: Identifier): JSDocMemberName + fun createJSDocLink(name: Identifier?, text: String): JSDocLink + fun createJSDocLink(name: QualifiedName?, text: String): JSDocLink + fun createJSDocLink(name: JSDocMemberName?, text: String): JSDocLink + fun updateJSDocLink(node: JSDocLink, name: Identifier?, text: String): JSDocLink + fun updateJSDocLink(node: JSDocLink, name: QualifiedName?, text: String): JSDocLink + fun updateJSDocLink(node: JSDocLink, name: JSDocMemberName?, text: String): JSDocLink + fun createJSDocLinkCode(name: Identifier?, text: String): JSDocLinkCode + fun createJSDocLinkCode(name: QualifiedName?, text: String): JSDocLinkCode + fun createJSDocLinkCode(name: JSDocMemberName?, text: String): JSDocLinkCode + fun updateJSDocLinkCode(node: JSDocLinkCode, name: Identifier?, text: String): JSDocLinkCode + fun updateJSDocLinkCode(node: JSDocLinkCode, name: QualifiedName?, text: String): JSDocLinkCode + fun updateJSDocLinkCode(node: JSDocLinkCode, name: JSDocMemberName?, text: String): JSDocLinkCode + fun createJSDocLinkPlain(name: Identifier?, text: String): JSDocLinkPlain + fun createJSDocLinkPlain(name: QualifiedName?, text: String): JSDocLinkPlain + fun createJSDocLinkPlain(name: JSDocMemberName?, text: String): JSDocLinkPlain + fun updateJSDocLinkPlain(node: JSDocLinkPlain, name: Identifier?, text: String): JSDocLinkPlain + fun updateJSDocLinkPlain(node: JSDocLinkPlain, name: QualifiedName?, text: String): JSDocLinkPlain + fun updateJSDocLinkPlain(node: JSDocLinkPlain, name: JSDocMemberName?, text: String): JSDocLinkPlain + fun createJSDocTypeLiteral(jsDocPropertyTags: Array = definedExternally, isArrayType: Boolean = definedExternally): JSDocTypeLiteral + fun updateJSDocTypeLiteral(node: JSDocTypeLiteral, jsDocPropertyTags: Array?, isArrayType: Boolean?): JSDocTypeLiteral + fun createJSDocSignature(typeParameters: Array?, parameters: Array, type: JSDocReturnTag = definedExternally): JSDocSignature + fun updateJSDocSignature(node: JSDocSignature, typeParameters: Array?, parameters: Array, type: JSDocReturnTag?): JSDocSignature + fun createJSDocTemplateTag(tagName: Identifier?, constraint: JSDocTypeExpression?, typeParameters: Array, comment: String = definedExternally): JSDocTemplateTag + fun createJSDocTemplateTag(tagName: Identifier?, constraint: JSDocTypeExpression?, typeParameters: Array): JSDocTemplateTag + fun createJSDocTemplateTag(tagName: Identifier?, constraint: JSDocTypeExpression?, typeParameters: Array, comment: NodeArray = definedExternally): JSDocTemplateTag + fun updateJSDocTemplateTag(node: JSDocTemplateTag, tagName: Identifier?, constraint: JSDocTypeExpression?, typeParameters: Array, comment: String?): JSDocTemplateTag + fun updateJSDocTemplateTag(node: JSDocTemplateTag, tagName: Identifier?, constraint: JSDocTypeExpression?, typeParameters: Array, comment: NodeArray?): JSDocTemplateTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, fullName: Identifier = definedExternally, comment: String = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, fullName: Identifier = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, fullName: Identifier = definedExternally, comment: NodeArray = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, fullName: JSDocNamespaceDeclaration = definedExternally, comment: String = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, fullName: JSDocNamespaceDeclaration = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, fullName: JSDocNamespaceDeclaration = definedExternally, comment: NodeArray = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeLiteral = definedExternally, fullName: Identifier = definedExternally, comment: String = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeLiteral = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeLiteral = definedExternally, fullName: Identifier = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeLiteral = definedExternally, fullName: Identifier = definedExternally, comment: NodeArray = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeLiteral = definedExternally, fullName: JSDocNamespaceDeclaration = definedExternally, comment: String = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeLiteral = definedExternally, fullName: JSDocNamespaceDeclaration = definedExternally): JSDocTypedefTag + fun createJSDocTypedefTag(tagName: Identifier?, typeExpression: JSDocTypeLiteral = definedExternally, fullName: JSDocNamespaceDeclaration = definedExternally, comment: NodeArray = definedExternally): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, fullName: Identifier?, comment: String?): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, fullName: Identifier?, comment: NodeArray?): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, fullName: JSDocNamespaceDeclaration?, comment: String?): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, fullName: JSDocNamespaceDeclaration?, comment: NodeArray?): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeLiteral?, fullName: Identifier?, comment: String?): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeLiteral?, fullName: Identifier?, comment: NodeArray?): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeLiteral?, fullName: JSDocNamespaceDeclaration?, comment: String?): JSDocTypedefTag + fun updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier?, typeExpression: JSDocTypeLiteral?, fullName: JSDocNamespaceDeclaration?, comment: NodeArray?): JSDocTypedefTag + fun createJSDocParameterTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: String = definedExternally): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: NodeArray = definedExternally): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: String = definedExternally): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally): JSDocParameterTag + fun createJSDocParameterTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: NodeArray = definedExternally): JSDocParameterTag + fun updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: String?): JSDocParameterTag + fun updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: NodeArray?): JSDocParameterTag + fun updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: String?): JSDocParameterTag + fun updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: NodeArray?): JSDocParameterTag + fun createJSDocPropertyTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: String = definedExternally): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: NodeArray = definedExternally): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: String = definedExternally): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally): JSDocPropertyTag + fun createJSDocPropertyTag(tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression = definedExternally, isNameFirst: Boolean = definedExternally, comment: NodeArray = definedExternally): JSDocPropertyTag + fun updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: String?): JSDocPropertyTag + fun updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier?, name: Identifier, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: NodeArray?): JSDocPropertyTag + fun updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: String?): JSDocPropertyTag + fun updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier?, name: QualifiedName, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean, comment: NodeArray?): JSDocPropertyTag + fun createJSDocTypeTag(tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: String = definedExternally): JSDocTypeTag + fun createJSDocTypeTag(tagName: Identifier?, typeExpression: JSDocTypeExpression): JSDocTypeTag + fun createJSDocTypeTag(tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: NodeArray = definedExternally): JSDocTypeTag + fun updateJSDocTypeTag(node: JSDocTypeTag, tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: String?): JSDocTypeTag + fun updateJSDocTypeTag(node: JSDocTypeTag, tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: NodeArray?): JSDocTypeTag + fun createJSDocSeeTag(tagName: Identifier?, nameExpression: JSDocNameReference?, comment: String = definedExternally): JSDocSeeTag + fun createJSDocSeeTag(tagName: Identifier?, nameExpression: JSDocNameReference?): JSDocSeeTag + fun createJSDocSeeTag(tagName: Identifier?, nameExpression: JSDocNameReference?, comment: NodeArray = definedExternally): JSDocSeeTag + fun updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier?, nameExpression: JSDocNameReference?, comment: String = definedExternally): JSDocSeeTag + fun updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier?, nameExpression: JSDocNameReference?): JSDocSeeTag + fun updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier?, nameExpression: JSDocNameReference?, comment: NodeArray = definedExternally): JSDocSeeTag + fun createJSDocReturnTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, comment: String = definedExternally): JSDocReturnTag + fun createJSDocReturnTag(tagName: Identifier?): JSDocReturnTag + fun createJSDocReturnTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally): JSDocReturnTag + fun createJSDocReturnTag(tagName: Identifier?, typeExpression: JSDocTypeExpression = definedExternally, comment: NodeArray = definedExternally): JSDocReturnTag + fun updateJSDocReturnTag(node: JSDocReturnTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, comment: String?): JSDocReturnTag + fun updateJSDocReturnTag(node: JSDocReturnTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, comment: NodeArray?): JSDocReturnTag + fun createJSDocThisTag(tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: String = definedExternally): JSDocThisTag + fun createJSDocThisTag(tagName: Identifier?, typeExpression: JSDocTypeExpression): JSDocThisTag + fun createJSDocThisTag(tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: NodeArray = definedExternally): JSDocThisTag + fun updateJSDocThisTag(node: JSDocThisTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, comment: String?): JSDocThisTag + fun updateJSDocThisTag(node: JSDocThisTag, tagName: Identifier?, typeExpression: JSDocTypeExpression?, comment: NodeArray?): JSDocThisTag + fun createJSDocEnumTag(tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: String = definedExternally): JSDocEnumTag + fun createJSDocEnumTag(tagName: Identifier?, typeExpression: JSDocTypeExpression): JSDocEnumTag + fun createJSDocEnumTag(tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: NodeArray = definedExternally): JSDocEnumTag + fun updateJSDocEnumTag(node: JSDocEnumTag, tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: String?): JSDocEnumTag + fun updateJSDocEnumTag(node: JSDocEnumTag, tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: NodeArray?): JSDocEnumTag + fun createJSDocCallbackTag(tagName: Identifier?, typeExpression: JSDocSignature, fullName: Identifier = definedExternally, comment: String = definedExternally): JSDocCallbackTag + fun createJSDocCallbackTag(tagName: Identifier?, typeExpression: JSDocSignature): JSDocCallbackTag + fun createJSDocCallbackTag(tagName: Identifier?, typeExpression: JSDocSignature, fullName: Identifier = definedExternally): JSDocCallbackTag + fun createJSDocCallbackTag(tagName: Identifier?, typeExpression: JSDocSignature, fullName: Identifier = definedExternally, comment: NodeArray = definedExternally): JSDocCallbackTag + fun createJSDocCallbackTag(tagName: Identifier?, typeExpression: JSDocSignature, fullName: JSDocNamespaceDeclaration = definedExternally, comment: String = definedExternally): JSDocCallbackTag + fun createJSDocCallbackTag(tagName: Identifier?, typeExpression: JSDocSignature, fullName: JSDocNamespaceDeclaration = definedExternally): JSDocCallbackTag + fun createJSDocCallbackTag(tagName: Identifier?, typeExpression: JSDocSignature, fullName: JSDocNamespaceDeclaration = definedExternally, comment: NodeArray = definedExternally): JSDocCallbackTag + fun updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier?, typeExpression: JSDocSignature, fullName: Identifier?, comment: String?): JSDocCallbackTag + fun updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier?, typeExpression: JSDocSignature, fullName: Identifier?, comment: NodeArray?): JSDocCallbackTag + fun updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier?, typeExpression: JSDocSignature, fullName: JSDocNamespaceDeclaration?, comment: String?): JSDocCallbackTag + fun updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier?, typeExpression: JSDocSignature, fullName: JSDocNamespaceDeclaration?, comment: NodeArray?): JSDocCallbackTag + fun createJSDocAugmentsTag(tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: String = definedExternally): JSDocAugmentsTag + fun createJSDocAugmentsTag(tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */): JSDocAugmentsTag + fun createJSDocAugmentsTag(tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: NodeArray = definedExternally): JSDocAugmentsTag + fun updateJSDocAugmentsTag(node: JSDocAugmentsTag, tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: String?): JSDocAugmentsTag + fun updateJSDocAugmentsTag(node: JSDocAugmentsTag, tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: NodeArray?): JSDocAugmentsTag + fun createJSDocImplementsTag(tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: String = definedExternally): JSDocImplementsTag + fun createJSDocImplementsTag(tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */): JSDocImplementsTag + fun createJSDocImplementsTag(tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: NodeArray = definedExternally): JSDocImplementsTag + fun updateJSDocImplementsTag(node: JSDocImplementsTag, tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: String?): JSDocImplementsTag + fun updateJSDocImplementsTag(node: JSDocImplementsTag, tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: NodeArray?): JSDocImplementsTag + fun createJSDocAuthorTag(tagName: Identifier?, comment: String = definedExternally): JSDocAuthorTag + fun createJSDocAuthorTag(tagName: Identifier?): JSDocAuthorTag + fun createJSDocAuthorTag(tagName: Identifier?, comment: NodeArray = definedExternally): JSDocAuthorTag + fun updateJSDocAuthorTag(node: JSDocAuthorTag, tagName: Identifier?, comment: String?): JSDocAuthorTag + fun updateJSDocAuthorTag(node: JSDocAuthorTag, tagName: Identifier?, comment: NodeArray?): JSDocAuthorTag + fun createJSDocClassTag(tagName: Identifier?, comment: String = definedExternally): JSDocClassTag + fun createJSDocClassTag(tagName: Identifier?): JSDocClassTag + fun createJSDocClassTag(tagName: Identifier?, comment: NodeArray = definedExternally): JSDocClassTag + fun updateJSDocClassTag(node: JSDocClassTag, tagName: Identifier?, comment: String?): JSDocClassTag + fun updateJSDocClassTag(node: JSDocClassTag, tagName: Identifier?, comment: NodeArray?): JSDocClassTag + fun createJSDocPublicTag(tagName: Identifier?, comment: String = definedExternally): JSDocPublicTag + fun createJSDocPublicTag(tagName: Identifier?): JSDocPublicTag + fun createJSDocPublicTag(tagName: Identifier?, comment: NodeArray = definedExternally): JSDocPublicTag + fun updateJSDocPublicTag(node: JSDocPublicTag, tagName: Identifier?, comment: String?): JSDocPublicTag + fun updateJSDocPublicTag(node: JSDocPublicTag, tagName: Identifier?, comment: NodeArray?): JSDocPublicTag + fun createJSDocPrivateTag(tagName: Identifier?, comment: String = definedExternally): JSDocPrivateTag + fun createJSDocPrivateTag(tagName: Identifier?): JSDocPrivateTag + fun createJSDocPrivateTag(tagName: Identifier?, comment: NodeArray = definedExternally): JSDocPrivateTag + fun updateJSDocPrivateTag(node: JSDocPrivateTag, tagName: Identifier?, comment: String?): JSDocPrivateTag + fun updateJSDocPrivateTag(node: JSDocPrivateTag, tagName: Identifier?, comment: NodeArray?): JSDocPrivateTag + fun createJSDocProtectedTag(tagName: Identifier?, comment: String = definedExternally): JSDocProtectedTag + fun createJSDocProtectedTag(tagName: Identifier?): JSDocProtectedTag + fun createJSDocProtectedTag(tagName: Identifier?, comment: NodeArray = definedExternally): JSDocProtectedTag + fun updateJSDocProtectedTag(node: JSDocProtectedTag, tagName: Identifier?, comment: String?): JSDocProtectedTag + fun updateJSDocProtectedTag(node: JSDocProtectedTag, tagName: Identifier?, comment: NodeArray?): JSDocProtectedTag + fun createJSDocReadonlyTag(tagName: Identifier?, comment: String = definedExternally): JSDocReadonlyTag + fun createJSDocReadonlyTag(tagName: Identifier?): JSDocReadonlyTag + fun createJSDocReadonlyTag(tagName: Identifier?, comment: NodeArray = definedExternally): JSDocReadonlyTag + fun updateJSDocReadonlyTag(node: JSDocReadonlyTag, tagName: Identifier?, comment: String?): JSDocReadonlyTag + fun updateJSDocReadonlyTag(node: JSDocReadonlyTag, tagName: Identifier?, comment: NodeArray?): JSDocReadonlyTag + fun createJSDocUnknownTag(tagName: Identifier, comment: String = definedExternally): JSDocUnknownTag + fun createJSDocUnknownTag(tagName: Identifier): JSDocUnknownTag + fun createJSDocUnknownTag(tagName: Identifier, comment: NodeArray = definedExternally): JSDocUnknownTag + fun updateJSDocUnknownTag(node: JSDocUnknownTag, tagName: Identifier, comment: String?): JSDocUnknownTag + fun updateJSDocUnknownTag(node: JSDocUnknownTag, tagName: Identifier, comment: NodeArray?): JSDocUnknownTag + fun createJSDocDeprecatedTag(tagName: Identifier, comment: String = definedExternally): JSDocDeprecatedTag + fun createJSDocDeprecatedTag(tagName: Identifier): JSDocDeprecatedTag + fun createJSDocDeprecatedTag(tagName: Identifier, comment: NodeArray = definedExternally): JSDocDeprecatedTag + fun updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier, comment: String = definedExternally): JSDocDeprecatedTag + fun updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier): JSDocDeprecatedTag + fun updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier, comment: NodeArray = definedExternally): JSDocDeprecatedTag + fun createJSDocOverrideTag(tagName: Identifier, comment: String = definedExternally): JSDocOverrideTag + fun createJSDocOverrideTag(tagName: Identifier): JSDocOverrideTag + fun createJSDocOverrideTag(tagName: Identifier, comment: NodeArray = definedExternally): JSDocOverrideTag + fun updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier, comment: String = definedExternally): JSDocOverrideTag + fun updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier): JSDocOverrideTag + fun updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier, comment: NodeArray = definedExternally): JSDocOverrideTag + fun createJSDocText(text: String): JSDocText + fun updateJSDocText(node: JSDocText, text: String): JSDocText + fun createJSDocComment(comment: String? = definedExternally, tags: Array? = definedExternally): JSDoc + fun createJSDocComment(): JSDoc + fun createJSDocComment(comment: String? = definedExternally): JSDoc + fun createJSDocComment(comment: NodeArray? = definedExternally, tags: Array? = definedExternally): JSDoc + fun createJSDocComment(comment: NodeArray? = definedExternally): JSDoc + fun updateJSDocComment(node: JSDoc, comment: String?, tags: Array?): JSDoc + fun updateJSDocComment(node: JSDoc, comment: NodeArray?, tags: Array?): JSDoc + fun createJsxElement(openingElement: JsxOpeningElement, children: Array, closingElement: JsxClosingElement): JsxElement + fun updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: Array, closingElement: JsxClosingElement): JsxElement + fun createJsxSelfClosingElement(tagName: Identifier, typeArguments: Array?, attributes: JsxAttributes): JsxSelfClosingElement + fun createJsxSelfClosingElement(tagName: ThisExpression, typeArguments: Array?, attributes: JsxAttributes): JsxSelfClosingElement + fun createJsxSelfClosingElement(tagName: JsxTagNamePropertyAccess, typeArguments: Array?, attributes: JsxAttributes): JsxSelfClosingElement + fun updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: Identifier, typeArguments: Array?, attributes: JsxAttributes): JsxSelfClosingElement + fun updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: ThisExpression, typeArguments: Array?, attributes: JsxAttributes): JsxSelfClosingElement + fun updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNamePropertyAccess, typeArguments: Array?, attributes: JsxAttributes): JsxSelfClosingElement + fun createJsxOpeningElement(tagName: Identifier, typeArguments: Array?, attributes: JsxAttributes): JsxOpeningElement + fun createJsxOpeningElement(tagName: ThisExpression, typeArguments: Array?, attributes: JsxAttributes): JsxOpeningElement + fun createJsxOpeningElement(tagName: JsxTagNamePropertyAccess, typeArguments: Array?, attributes: JsxAttributes): JsxOpeningElement + fun updateJsxOpeningElement(node: JsxOpeningElement, tagName: Identifier, typeArguments: Array?, attributes: JsxAttributes): JsxOpeningElement + fun updateJsxOpeningElement(node: JsxOpeningElement, tagName: ThisExpression, typeArguments: Array?, attributes: JsxAttributes): JsxOpeningElement + fun updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNamePropertyAccess, typeArguments: Array?, attributes: JsxAttributes): JsxOpeningElement + fun createJsxClosingElement(tagName: Identifier): JsxClosingElement + fun createJsxClosingElement(tagName: ThisExpression): JsxClosingElement + fun createJsxClosingElement(tagName: JsxTagNamePropertyAccess): JsxClosingElement + fun updateJsxClosingElement(node: JsxClosingElement, tagName: Identifier): JsxClosingElement + fun updateJsxClosingElement(node: JsxClosingElement, tagName: ThisExpression): JsxClosingElement + fun updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNamePropertyAccess): JsxClosingElement + fun createJsxFragment(openingFragment: JsxOpeningFragment, children: Array, closingFragment: JsxClosingFragment): JsxFragment + fun createJsxText(text: String, containsOnlyTriviaWhiteSpaces: Boolean = definedExternally): JsxText + fun updateJsxText(node: JsxText, text: String, containsOnlyTriviaWhiteSpaces: Boolean = definedExternally): JsxText + fun createJsxOpeningFragment(): JsxOpeningFragment + fun createJsxJsxClosingFragment(): JsxClosingFragment + fun updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: Array, closingFragment: JsxClosingFragment): JsxFragment + fun createJsxAttribute(name: Identifier, initializer: StringLiteral?): JsxAttribute + fun createJsxAttribute(name: Identifier, initializer: JsxExpression?): JsxAttribute + fun updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral?): JsxAttribute + fun updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxExpression?): JsxAttribute + fun createJsxAttributes(properties: Array): JsxAttributes + fun updateJsxAttributes(node: JsxAttributes, properties: Array): JsxAttributes + fun createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute + fun updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute + fun createJsxExpression(dotDotDotToken: DotDotDotToken?, expression: Expression?): JsxExpression + fun updateJsxExpression(node: JsxExpression, expression: Expression?): JsxExpression + fun createCaseClause(expression: Expression, statements: Array): CaseClause + fun updateCaseClause(node: CaseClause, expression: Expression, statements: Array): CaseClause + fun createDefaultClause(statements: Array): DefaultClause + fun updateDefaultClause(node: DefaultClause, statements: Array): DefaultClause + fun createHeritageClause(token: SyntaxKind.ExtendsKeyword, types: Array): HeritageClause + fun createHeritageClause(token: SyntaxKind.ImplementsKeyword, types: Array): HeritageClause + fun updateHeritageClause(node: HeritageClause, types: Array): HeritageClause + fun createCatchClause(variableDeclaration: String?, block: Block): CatchClause + fun createCatchClause(variableDeclaration: VariableDeclaration?, block: Block): CatchClause + fun updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration?, block: Block): CatchClause + fun createPropertyAssignment(name: String, initializer: Expression): PropertyAssignment + fun createPropertyAssignment(name: Identifier, initializer: Expression): PropertyAssignment + fun createPropertyAssignment(name: StringLiteral, initializer: Expression): PropertyAssignment + fun createPropertyAssignment(name: NumericLiteral, initializer: Expression): PropertyAssignment + fun createPropertyAssignment(name: ComputedPropertyName, initializer: Expression): PropertyAssignment + fun createPropertyAssignment(name: PrivateIdentifier, initializer: Expression): PropertyAssignment + fun updatePropertyAssignment(node: PropertyAssignment, name: Identifier, initializer: Expression): PropertyAssignment + fun updatePropertyAssignment(node: PropertyAssignment, name: StringLiteral, initializer: Expression): PropertyAssignment + fun updatePropertyAssignment(node: PropertyAssignment, name: NumericLiteral, initializer: Expression): PropertyAssignment + fun updatePropertyAssignment(node: PropertyAssignment, name: ComputedPropertyName, initializer: Expression): PropertyAssignment + fun updatePropertyAssignment(node: PropertyAssignment, name: PrivateIdentifier, initializer: Expression): PropertyAssignment + fun createShorthandPropertyAssignment(name: String, objectAssignmentInitializer: Expression = definedExternally): ShorthandPropertyAssignment + fun createShorthandPropertyAssignment(name: String): ShorthandPropertyAssignment + fun createShorthandPropertyAssignment(name: Identifier, objectAssignmentInitializer: Expression = definedExternally): ShorthandPropertyAssignment + fun createShorthandPropertyAssignment(name: Identifier): ShorthandPropertyAssignment + fun updateShorthandPropertyAssignment(node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression?): ShorthandPropertyAssignment + fun createSpreadAssignment(expression: Expression): SpreadAssignment + fun updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment + fun createEnumMember(name: String, initializer: Expression = definedExternally): EnumMember + fun createEnumMember(name: String): EnumMember + fun createEnumMember(name: Identifier, initializer: Expression = definedExternally): EnumMember + fun createEnumMember(name: Identifier): EnumMember + fun createEnumMember(name: StringLiteral, initializer: Expression = definedExternally): EnumMember + fun createEnumMember(name: StringLiteral): EnumMember + fun createEnumMember(name: NumericLiteral, initializer: Expression = definedExternally): EnumMember + fun createEnumMember(name: NumericLiteral): EnumMember + fun createEnumMember(name: ComputedPropertyName, initializer: Expression = definedExternally): EnumMember + fun createEnumMember(name: ComputedPropertyName): EnumMember + fun createEnumMember(name: PrivateIdentifier, initializer: Expression = definedExternally): EnumMember + fun createEnumMember(name: PrivateIdentifier): EnumMember + fun updateEnumMember(node: EnumMember, name: Identifier, initializer: Expression?): EnumMember + fun updateEnumMember(node: EnumMember, name: StringLiteral, initializer: Expression?): EnumMember + fun updateEnumMember(node: EnumMember, name: NumericLiteral, initializer: Expression?): EnumMember + fun updateEnumMember(node: EnumMember, name: ComputedPropertyName, initializer: Expression?): EnumMember + fun updateEnumMember(node: EnumMember, name: PrivateIdentifier, initializer: Expression?): EnumMember + fun createSourceFile(statements: Array, endOfFileToken: Token /* Token & JSDocContainer */, flags: NodeFlags): SourceFile + fun updateSourceFile(node: SourceFile, statements: Array, isDeclarationFile: Boolean = definedExternally, referencedFiles: Array = definedExternally, typeReferences: Array = definedExternally, hasNoDefaultLib: Boolean = definedExternally, libReferences: Array = definedExternally): SourceFile + fun createNotEmittedStatement(original: Node): NotEmittedStatement + fun createPartiallyEmittedExpression(expression: Expression, original: Node = definedExternally): PartiallyEmittedExpression + fun updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression + fun createCommaListExpression(elements: Array): CommaListExpression + fun updateCommaListExpression(node: CommaListExpression, elements: Array): CommaListExpression + fun createBundle(sourceFiles: Array, prepends: Array = definedExternally): Bundle + fun updateBundle(node: Bundle, sourceFiles: Array, prepends: Array = definedExternally): Bundle + fun createComma(left: Expression, right: Expression): BinaryExpression + fun createAssignment(left: ObjectLiteralExpression, right: Expression): dynamic /* ObjectDestructuringAssignment | ArrayDestructuringAssignment */ + fun createAssignment(left: ArrayLiteralExpression, right: Expression): dynamic /* ObjectDestructuringAssignment | ArrayDestructuringAssignment */ + fun createAssignment(left: Expression, right: Expression): AssignmentExpression + fun createLogicalOr(left: Expression, right: Expression): BinaryExpression + fun createLogicalAnd(left: Expression, right: Expression): BinaryExpression + fun createBitwiseOr(left: Expression, right: Expression): BinaryExpression + fun createBitwiseXor(left: Expression, right: Expression): BinaryExpression + fun createBitwiseAnd(left: Expression, right: Expression): BinaryExpression + fun createStrictEquality(left: Expression, right: Expression): BinaryExpression + fun createStrictInequality(left: Expression, right: Expression): BinaryExpression + fun createEquality(left: Expression, right: Expression): BinaryExpression + fun createInequality(left: Expression, right: Expression): BinaryExpression + fun createLessThan(left: Expression, right: Expression): BinaryExpression + fun createLessThanEquals(left: Expression, right: Expression): BinaryExpression + fun createGreaterThan(left: Expression, right: Expression): BinaryExpression + fun createGreaterThanEquals(left: Expression, right: Expression): BinaryExpression + fun createLeftShift(left: Expression, right: Expression): BinaryExpression + fun createRightShift(left: Expression, right: Expression): BinaryExpression + fun createUnsignedRightShift(left: Expression, right: Expression): BinaryExpression + fun createAdd(left: Expression, right: Expression): BinaryExpression + fun createSubtract(left: Expression, right: Expression): BinaryExpression + fun createMultiply(left: Expression, right: Expression): BinaryExpression + fun createDivide(left: Expression, right: Expression): BinaryExpression + fun createModulo(left: Expression, right: Expression): BinaryExpression + fun createExponent(left: Expression, right: Expression): BinaryExpression + fun createPrefixPlus(operand: Expression): PrefixUnaryExpression + fun createPrefixMinus(operand: Expression): PrefixUnaryExpression + fun createPrefixIncrement(operand: Expression): PrefixUnaryExpression + fun createPrefixDecrement(operand: Expression): PrefixUnaryExpression + fun createBitwiseNot(operand: Expression): PrefixUnaryExpression + fun createLogicalNot(operand: Expression): PrefixUnaryExpression + fun createPostfixIncrement(operand: Expression): PostfixUnaryExpression + fun createPostfixDecrement(operand: Expression): PostfixUnaryExpression + fun createImmediatelyInvokedFunctionExpression(statements: Array): CallExpression + fun createImmediatelyInvokedFunctionExpression(statements: Array, param: ParameterDeclaration, paramValue: Expression): CallExpression + fun createImmediatelyInvokedArrowFunction(statements: Array): CallExpression + fun createImmediatelyInvokedArrowFunction(statements: Array, param: ParameterDeclaration, paramValue: Expression): CallExpression + fun createVoidZero(): VoidExpression + fun createExportDefault(expression: Expression): ExportAssignment + fun createExternalModuleExport(exportName: Identifier): ExportDeclaration + fun restoreOuterExpressions(outerExpression: Expression?, innerExpression: Expression, kinds: OuterExpressionKinds = definedExternally): Expression +} + +external interface CoreTransformationContext { + var factory: NodeFactory + fun getCompilerOptions(): CompilerOptions + fun startLexicalEnvironment() + fun suspendLexicalEnvironment() + fun resumeLexicalEnvironment() + fun endLexicalEnvironment(): Array? + fun hoistFunctionDeclaration(node: FunctionDeclaration) + fun hoistVariableDeclaration(node: Identifier) +} + +external interface TransformationContext : CoreTransformationContext { + fun requestEmitHelper(helper: ScopedEmitHelper) + fun requestEmitHelper(helper: UnscopedEmitHelper) + fun readEmitHelpers(): Array? + fun enableSubstitution(kind: SyntaxKind) + fun isSubstitutionEnabled(node: Node): Boolean + var onSubstituteNode: (hint: EmitHint, node: Node) -> Node + fun enableEmitNotification(kind: SyntaxKind) + fun isEmitNotificationEnabled(node: Node): Boolean + var onEmitNode: (hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) -> Unit) -> Unit +} + +external interface TransformationResult { + var transformed: Array + var diagnostics: Array? + get() = definedExternally + set(value) = definedExternally + fun substituteNode(hint: EmitHint, node: Node): Node + fun emitNodeWithNotification(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) -> Unit) + val isEmitNotificationEnabled: ((node: Node) -> Boolean)? + fun dispose() +} + +external interface NodeVisitor { + @nativeInvoke + operator fun invoke(nodes: T, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, lift: (node: Array) -> T = definedExternally): T + @nativeInvoke + operator fun invoke(nodes: T, visitor: Visitor?): T + @nativeInvoke + operator fun invoke(nodes: T, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): T + @nativeInvoke + operator fun invoke(nodes: T?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, lift: (node: Array) -> T = definedExternally): T? + @nativeInvoke + operator fun invoke(nodes: T?, visitor: Visitor?): T? + @nativeInvoke + operator fun invoke(nodes: T?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): T? +} + +external interface NodesVisitor { + @nativeInvoke + operator fun invoke(nodes: NodeArray, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally, count: Number = definedExternally): NodeArray + @nativeInvoke + operator fun invoke(nodes: NodeArray, visitor: Visitor?): NodeArray + @nativeInvoke + operator fun invoke(nodes: NodeArray, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): NodeArray + @nativeInvoke + operator fun invoke(nodes: NodeArray, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally): NodeArray + @nativeInvoke + operator fun invoke(nodes: NodeArray?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally, count: Number = definedExternally): NodeArray? + @nativeInvoke + operator fun invoke(nodes: NodeArray?, visitor: Visitor?): NodeArray? + @nativeInvoke + operator fun invoke(nodes: NodeArray?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): NodeArray? + @nativeInvoke + operator fun invoke(nodes: NodeArray?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally): NodeArray? +} + +external interface Printer { + fun printNode(hint: EmitHint, node: Node, sourceFile: SourceFile): String + fun printList(format: ListFormat, list: NodeArray, sourceFile: SourceFile): String + fun printFile(sourceFile: SourceFile): String + fun printBundle(bundle: Bundle): String +} + +external interface PrintHandlers { + val hasGlobalName: ((name: String) -> Boolean)? + val onEmitNode: ((hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) -> Unit) -> Unit)? + val isEmitNotificationEnabled: ((node: Node) -> Boolean)? + val substituteNode: ((hint: EmitHint, node: Node) -> Node)? +} + +external interface PrinterOptions { + var removeComments: Boolean? + get() = definedExternally + set(value) = definedExternally + var newLine: NewLineKind? + get() = definedExternally + set(value) = definedExternally + var omitTrailingSemicolon: Boolean? + get() = definedExternally + set(value) = definedExternally + var noEmitHelpers: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface GetEffectiveTypeRootsHost { + val directoryExists: ((directoryName: String) -> Boolean)? + val getCurrentDirectory: (() -> String)? +} + +external interface TextSpan { + var start: Number + var length: Number +} + +external interface TextChangeRange { + var span: TextSpan + var newLength: Number +} + +external interface SyntaxList : Node { + var _children: Array +} + +external enum class ListFormat { + None /* = 0 */, + SingleLine /* = 0 */, + MultiLine /* = 1 */, + PreserveLines /* = 2 */, + LinesMask /* = 3 */, + NotDelimited /* = 0 */, + BarDelimited /* = 4 */, + AmpersandDelimited /* = 8 */, + CommaDelimited /* = 16 */, + AsteriskDelimited /* = 32 */, + DelimitersMask /* = 60 */, + AllowTrailingComma /* = 64 */, + Indented /* = 128 */, + SpaceBetweenBraces /* = 256 */, + SpaceBetweenSiblings /* = 512 */, + Braces /* = 1024 */, + Parenthesis /* = 2048 */, + AngleBrackets /* = 4096 */, + SquareBrackets /* = 8192 */, + BracketsMask /* = 15360 */, + OptionalIfUndefined /* = 16384 */, + OptionalIfEmpty /* = 32768 */, + Optional /* = 49152 */, + PreferNewLine /* = 65536 */, + NoTrailingNewLine /* = 131072 */, + NoInterveningComments /* = 262144 */, + NoSpaceIfEmpty /* = 524288 */, + SingleElement /* = 1048576 */, + SpaceAfterList /* = 2097152 */, + Modifiers /* = 262656 */, + HeritageClauses /* = 512 */, + SingleLineTypeLiteralMembers /* = 768 */, + MultiLineTypeLiteralMembers /* = 32897 */, + SingleLineTupleTypeElements /* = 528 */, + MultiLineTupleTypeElements /* = 657 */, + UnionTypeConstituents /* = 516 */, + IntersectionTypeConstituents /* = 520 */, + ObjectBindingPatternElements /* = 525136 */, + ArrayBindingPatternElements /* = 524880 */, + ObjectLiteralExpressionProperties /* = 526226 */, + ArrayLiteralExpressionElements /* = 8914 */, + CommaListElements /* = 528 */, + CallExpressionArguments /* = 2576 */, + NewExpressionArguments /* = 18960 */, + TemplateExpressionSpans /* = 262144 */, + SingleLineBlockStatements /* = 768 */, + MultiLineBlockStatements /* = 129 */, + VariableDeclarationList /* = 528 */, + SingleLineFunctionBodyStatements /* = 768 */, + MultiLineFunctionBodyStatements /* = 1 */, + ClassHeritageClauses /* = 0 */, + ClassMembers /* = 129 */, + InterfaceMembers /* = 129 */, + EnumMembers /* = 145 */, + CaseBlockClauses /* = 129 */, + NamedImportsOrExportsElements /* = 525136 */, + JsxElementOrFragmentChildren /* = 262144 */, + JsxElementAttributes /* = 262656 */, + CaseOrDefaultClauseStatements /* = 163969 */, + HeritageClauseTypes /* = 528 */, + SourceFileStatements /* = 131073 */, + Decorators /* = 2146305 */, + TypeArguments /* = 53776 */, + TypeParameters /* = 53776 */, + Parameters /* = 2576 */, + IndexSignatureParameters /* = 8848 */, + JSDocComment /* = 33 */ +} + +external interface UserPreferences { + var disableSuggestions: Boolean? + get() = definedExternally + set(value) = definedExternally + var quotePreference: String? /* "auto" | "double" | "single" */ + get() = definedExternally + set(value) = definedExternally + var includeCompletionsForModuleExports: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeCompletionsForImportStatements: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeCompletionsWithSnippetText: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeAutomaticOptionalChainCompletions: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeCompletionsWithInsertText: Boolean? + get() = definedExternally + set(value) = definedExternally + var allowIncompleteCompletions: Boolean? + get() = definedExternally + set(value) = definedExternally + var importModuleSpecifierPreference: String? /* "shortest" | "project-relative" | "relative" | "non-relative" */ + get() = definedExternally + set(value) = definedExternally + var importModuleSpecifierEnding: String? /* "auto" | "minimal" | "index" | "js" */ + get() = definedExternally + set(value) = definedExternally + var allowTextChangesInNewFiles: Boolean? + get() = definedExternally + set(value) = definedExternally + var providePrefixAndSuffixTextForRename: Boolean? + get() = definedExternally + set(value) = definedExternally + var includePackageJsonAutoImports: String? /* "auto" | "on" | "off" */ + get() = definedExternally + set(value) = definedExternally + var provideRefactorNotApplicableReason: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface PseudoBigInt { + var negative: Boolean + var base10Value: String +} + +external enum class FileWatcherEventKind { + Created /* = 0 */, + Changed /* = 1 */, + Deleted /* = 2 */ +} + +external interface System { + var args: Array + var newLine: String + var useCaseSensitiveFileNames: Boolean + fun write(s: String) + val writeOutputIsTTY: (() -> Boolean)? + val getWidthOfTerminal: (() -> Number)? + fun readFile(path: String, encoding: String = definedExternally): String? + val getFileSize: ((path: String) -> Number)? + fun writeFile(path: String, data: String, writeByteOrderMark: Boolean = definedExternally) + val watchFile: ((path: String, callback: FileWatcherCallback, pollingInterval: Number, options: WatchOptions) -> FileWatcher)? + val watchDirectory: ((path: String, callback: DirectoryWatcherCallback, recursive: Boolean, options: WatchOptions) -> FileWatcher)? + fun resolvePath(path: String): String + fun fileExists(path: String): Boolean + fun directoryExists(path: String): Boolean + fun createDirectory(path: String) + fun getExecutingFilePath(): String + fun getCurrentDirectory(): String + fun getDirectories(path: String): Array + fun readDirectory(path: String, extensions: Array = definedExternally, exclude: Array = definedExternally, include: Array = definedExternally, depth: Number = definedExternally): Array + val getModifiedTime: ((path: String) -> Date?)? + val setModifiedTime: ((path: String, time: Date) -> Unit)? + val deleteFile: ((path: String) -> Unit)? + val createHash: ((data: String) -> String)? + val createSHA256Hash: ((data: String) -> String)? + val getMemoryUsage: (() -> Number)? + fun exit(exitCode: Number = definedExternally) + val realpath: ((path: String) -> String)? + val setTimeout: ((callback: (args: Any) -> Unit, ms: Number, args: Any) -> Any)? + val clearTimeout: ((timeoutId: Any) -> Unit)? + val clearScreen: (() -> Unit)? + val base64decode: ((input: String) -> String)? + val base64encode: ((input: String) -> String)? +} + +external interface FileWatcher { + fun close() +} + +external fun getNodeMajorVersion(): Number? + +external var sys: System + +external interface Scanner { + fun getStartPos(): Number + fun getToken(): SyntaxKind + fun getTextPos(): Number + fun getTokenPos(): Number + fun getTokenText(): String + fun getTokenValue(): String + fun hasUnicodeEscape(): Boolean + fun hasExtendedUnicodeEscape(): Boolean + fun hasPrecedingLineBreak(): Boolean + fun isIdentifier(): Boolean + fun isReservedWord(): Boolean + fun isUnterminated(): Boolean + fun reScanGreaterToken(): SyntaxKind + fun reScanSlashToken(): SyntaxKind + fun reScanAsteriskEqualsToken(): SyntaxKind + fun reScanTemplateToken(isTaggedTemplate: Boolean): SyntaxKind + fun reScanTemplateHeadOrNoSubstitutionTemplate(): SyntaxKind + fun scanJsxIdentifier(): SyntaxKind + fun scanJsxAttributeValue(): SyntaxKind + fun reScanJsxAttributeValue(): SyntaxKind + fun reScanJsxToken(allowMultilineJsxText: Boolean = definedExternally): dynamic /* SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken */ + fun reScanLessThanToken(): SyntaxKind + fun reScanHashToken(): SyntaxKind + fun reScanQuestionToken(): SyntaxKind + fun reScanInvalidIdentifier(): SyntaxKind + fun scanJsxToken(): dynamic /* SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken */ + fun scanJsDocToken(): dynamic /* SyntaxKind.EndOfFileToken | SyntaxKind.WhitespaceTrivia | SyntaxKind.AtToken | SyntaxKind.NewLineTrivia | SyntaxKind.AsteriskToken | SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.LessThanToken | SyntaxKind.GreaterThanToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.EqualsToken | SyntaxKind.CommaToken | SyntaxKind.DotToken | SyntaxKind.Identifier | SyntaxKind.BacktickToken | SyntaxKind.HashToken | SyntaxKind.Unknown | SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.AssertsKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InferKeyword | SyntaxKind.InKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.OfKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.RequireKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword */ + fun scan(): SyntaxKind + fun getText(): String + fun setText(text: String?, start: Number = definedExternally, length: Number = definedExternally) + fun setOnError(onError: ErrorCallback?) + fun setScriptTarget(scriptTarget: ScriptTarget) + fun setLanguageVariant(variant: LanguageVariant) + fun setTextPos(textPos: Number) + fun lookAhead(callback: () -> T): T + fun scanRange(start: Number, length: Number, callback: () -> T): T + fun tryScan(callback: () -> T): T +} + +external fun tokenToString(t: SyntaxKind): String? + +external fun getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: Number, character: Number): Number + +external fun getLineAndCharacterOfPosition(sourceFile: SourceFileLike, position: Number): LineAndCharacter + +external fun isWhiteSpaceLike(ch: Number): Boolean + +external fun isWhiteSpaceSingleLine(ch: Number): Boolean + +external fun isLineBreak(ch: Number): Boolean + +external fun couldStartTrivia(text: String, pos: Number): Boolean + +external fun forEachLeadingCommentRange(text: String, pos: Number, cb: (pos: Number, end: Number, kind: Any /* SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia */, hasTrailingNewLine: Boolean) -> U): U? + +external fun forEachLeadingCommentRange(text: String, pos: Number, cb: (pos: Number, end: Number, kind: Any /* SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia */, hasTrailingNewLine: Boolean, state: T) -> U, state: T): U? + +external fun forEachTrailingCommentRange(text: String, pos: Number, cb: (pos: Number, end: Number, kind: Any /* SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia */, hasTrailingNewLine: Boolean) -> U): U? + +external fun forEachTrailingCommentRange(text: String, pos: Number, cb: (pos: Number, end: Number, kind: Any /* SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia */, hasTrailingNewLine: Boolean, state: T) -> U, state: T): U? + +external fun reduceEachLeadingCommentRange(text: String, pos: Number, cb: (pos: Number, end: Number, kind: Any /* SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia */, hasTrailingNewLine: Boolean, state: T, memo: U) -> U, state: T, initial: U): U? + +external fun reduceEachTrailingCommentRange(text: String, pos: Number, cb: (pos: Number, end: Number, kind: Any /* SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia */, hasTrailingNewLine: Boolean, state: T, memo: U) -> U, state: T, initial: U): U? + +external fun getLeadingCommentRanges(text: String, pos: Number): Array? + +external fun getTrailingCommentRanges(text: String, pos: Number): Array? + +external fun getShebang(text: String): String? + +external fun isIdentifierStart(ch: Number, languageVersion: ScriptTarget?): Boolean + +external fun isIdentifierPart(ch: Number, languageVersion: ScriptTarget?, identifierVariant: LanguageVariant = definedExternally): Boolean + +external fun createScanner(languageVersion: ScriptTarget, skipTrivia: Boolean, languageVariant: LanguageVariant = definedExternally, textInitial: String = definedExternally, onError: ErrorCallback = definedExternally, start: Number = definedExternally, length: Number = definedExternally): Scanner + +external fun isExternalModuleNameRelative(moduleName: String): Boolean + +external fun sortAndDeduplicateDiagnostics(diagnostics: Array): SortedReadonlyArray + +external fun getDefaultLibFileName(options: CompilerOptions): String + +external fun textSpanEnd(span: TextSpan): Number + +external fun textSpanIsEmpty(span: TextSpan): Boolean + +external fun textSpanContainsPosition(span: TextSpan, position: Number): Boolean + +external fun textSpanContainsTextSpan(span: TextSpan, other: TextSpan): Boolean + +external fun textSpanOverlapsWith(span: TextSpan, other: TextSpan): Boolean + +external fun textSpanOverlap(span1: TextSpan, span2: TextSpan): TextSpan? + +external fun textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): Boolean + +external fun textSpanIntersectsWith(span: TextSpan, start: Number, length: Number): Boolean + +external fun decodedTextSpanIntersectsWith(start1: Number, length1: Number, start2: Number, length2: Number): Boolean + +external fun textSpanIntersectsWithPosition(span: TextSpan, position: Number): Boolean + +external fun textSpanIntersection(span1: TextSpan, span2: TextSpan): TextSpan? + +external fun createTextSpan(start: Number, length: Number): TextSpan + +external fun createTextSpanFromBounds(start: Number, end: Number): TextSpan + +external fun textChangeRangeNewSpan(range: TextChangeRange): TextSpan + +external fun textChangeRangeIsUnchanged(range: TextChangeRange): Boolean + +external fun createTextChangeRange(span: TextSpan, newLength: Number): TextChangeRange + +external var unchangedTextChangeRange: TextChangeRange + +external fun collapseTextChangeRangesAcrossMultipleVersions(changes: Array): TextChangeRange + +external fun getTypeParameterOwner(d: Declaration): Declaration? + +external interface `T$23` { + var parent: ConstructorDeclaration + var name: Identifier +} + +external fun isParameterPropertyDeclaration(node: Node, parent: Node): Boolean + +external fun isEmptyBindingPattern(node: Identifier): Boolean + +external fun isEmptyBindingPattern(node: ObjectBindingPattern): Boolean + +external fun isEmptyBindingPattern(node: ArrayBindingPattern): Boolean + +external fun isEmptyBindingElement(node: BindingElement): Boolean + +external fun walkUpBindingElementsAndPatterns(binding: BindingElement): dynamic /* VariableDeclaration | ParameterDeclaration */ + +external fun getCombinedModifierFlags(node: Declaration): ModifierFlags + +external fun getCombinedNodeFlags(node: Node): NodeFlags + +external interface `T$24` { + fun getExecutingFilePath(): String + fun resolvePath(path: String): String + fun fileExists(fileName: String): Boolean + fun readFile(fileName: String): String? +} + +external fun validateLocaleAndSetLanguage(locale: String, sys: `T$24`, errors: Push = definedExternally) + +external fun getOriginalNode(node: Node): Node + +external fun getOriginalNode(node: Node, nodeTest: (node: Node) -> Boolean): T + +external fun getOriginalNode(node: Node?): Node? + +external fun getOriginalNode(node: Node?, nodeTest: (node: Node?) -> Boolean): T? + +external fun findAncestor(node: Node?, callback: (element: Node) -> Boolean): T? + +external fun findAncestor(node: Node?, callback: (element: Node) -> Any): Node? + +external fun isParseTreeNode(node: Node): Boolean + +external fun getParseTreeNode(node: Node?): Node? + +external fun getParseTreeNode(node: T?, nodeTest: (node: Node) -> Boolean = definedExternally): T? + +external fun getParseTreeNode(node: T?): T? + +external fun escapeLeadingUnderscores(identifier: String): dynamic /* String & `T$8` | Unit & `T$8` | InternalSymbolName */ + +external fun unescapeLeadingUnderscores(identifier: String /* String & `T$8` */): String + +external fun unescapeLeadingUnderscores(identifier: Unit /* Unit & `T$8` */): String + +external fun unescapeLeadingUnderscores(identifier: InternalSymbolName): String + +external fun idText(identifierOrPrivateName: Identifier): String + +external fun idText(identifierOrPrivateName: PrivateIdentifier): String + +external fun symbolName(symbol: Symbol): String + +external fun getNameOfJSDocTypedef(declaration: JSDocTypedefTag): dynamic /* Identifier? | PrivateIdentifier? */ + +external fun getNameOfDeclaration(declaration: Declaration?): dynamic /* Identifier? | PrivateIdentifier? | StringLiteral? | NoSubstitutionTemplateLiteral? | NumericLiteral? | ComputedPropertyName? | ElementAccessExpression? | ObjectBindingPattern? | ArrayBindingPattern? | PropertyAccessEntityNameExpression? */ + +external fun getNameOfDeclaration(declaration: Expression?): dynamic /* Identifier? | PrivateIdentifier? | StringLiteral? | NoSubstitutionTemplateLiteral? | NumericLiteral? | ComputedPropertyName? | ElementAccessExpression? | ObjectBindingPattern? | ArrayBindingPattern? | PropertyAccessEntityNameExpression? */ + +external fun getJSDocParameterTags(param: ParameterDeclaration): Array + +external fun getJSDocTypeParameterTags(param: TypeParameterDeclaration): Array + +external fun hasJSDocParameterTags(node: FunctionDeclaration): Boolean + +external fun hasJSDocParameterTags(node: MethodDeclaration): Boolean + +external fun hasJSDocParameterTags(node: GetAccessorDeclaration): Boolean + +external fun hasJSDocParameterTags(node: SetAccessorDeclaration): Boolean + +external fun hasJSDocParameterTags(node: ConstructorDeclaration): Boolean + +external fun hasJSDocParameterTags(node: FunctionExpression): Boolean + +external fun hasJSDocParameterTags(node: ArrowFunction): Boolean + +external fun hasJSDocParameterTags(node: CallSignatureDeclaration): Boolean + +external fun hasJSDocParameterTags(node: ConstructSignatureDeclaration): Boolean + +external fun hasJSDocParameterTags(node: MethodSignature): Boolean + +external fun hasJSDocParameterTags(node: IndexSignatureDeclaration): Boolean + +external fun hasJSDocParameterTags(node: FunctionTypeNode): Boolean + +external fun hasJSDocParameterTags(node: ConstructorTypeNode): Boolean + +external fun hasJSDocParameterTags(node: JSDocFunctionType): Boolean + +external fun getJSDocAugmentsTag(node: Node): JSDocAugmentsTag? + +external fun getJSDocImplementsTags(node: Node): Array + +external fun getJSDocClassTag(node: Node): JSDocClassTag? + +external fun getJSDocPublicTag(node: Node): JSDocPublicTag? + +external fun getJSDocPrivateTag(node: Node): JSDocPrivateTag? + +external fun getJSDocProtectedTag(node: Node): JSDocProtectedTag? + +external fun getJSDocReadonlyTag(node: Node): JSDocReadonlyTag? + +external fun getJSDocOverrideTagNoCache(node: Node): JSDocOverrideTag? + +external fun getJSDocDeprecatedTag(node: Node): JSDocDeprecatedTag? + +external fun getJSDocEnumTag(node: Node): JSDocEnumTag? + +external fun getJSDocThisTag(node: Node): JSDocThisTag? + +external fun getJSDocReturnTag(node: Node): JSDocReturnTag? + +external fun getJSDocTemplateTag(node: Node): JSDocTemplateTag? + +external fun getJSDocTypeTag(node: Node): JSDocTypeTag? + +external fun getJSDocType(node: Node): TypeNode? + +external fun getJSDocReturnType(node: Node): TypeNode? + +external fun getJSDocTags(node: Node): Array + +external fun getAllJSDocTags(node: Node, predicate: (tag: JSDocTag) -> Boolean): Array + +external fun getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): Array + +external fun getTextOfJSDocComment(comment: String = definedExternally): String? + +external fun getTextOfJSDocComment(): String? + +external fun getTextOfJSDocComment(comment: NodeArray = definedExternally): String? + +external fun getEffectiveTypeParameterDeclarations(node: Any /* CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | FunctionExpression | ArrowFunction | ClassDeclaration | ClassExpression | InterfaceDeclaration | TypeAliasDeclaration | JSDocTemplateTag | JSDocTypedefTag | JSDocCallbackTag | JSDocSignature */): Array + +external fun getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode? + +external fun isMemberName(node: Node): Boolean + +external fun isPropertyAccessChain(node: Node): Boolean + +external fun isElementAccessChain(node: Node): Boolean + +external fun isCallChain(node: Node): Boolean + +external fun isOptionalChain(node: Node): Boolean + +external fun isNullishCoalesce(node: Node): Boolean + +external fun isConstTypeReference(node: Node): Boolean + +external fun skipPartiallyEmittedExpressions(node: Expression): Expression + +external fun skipPartiallyEmittedExpressions(node: Node): Node + +external fun isNonNullChain(node: Node): Boolean + +external fun isBreakOrContinueStatement(node: Node): Boolean + +external fun isNamedExportBindings(node: Node): Boolean + +external fun isUnparsedTextLike(node: Node): Boolean + +external fun isUnparsedNode(node: Node): Boolean + +external fun isJSDocPropertyLikeTag(node: Node): Boolean + +external fun isTokenKind(kind: SyntaxKind): Boolean + +external fun isToken(n: Node): Boolean + +external fun isLiteralExpression(node: Node): Boolean + +external fun isTemplateLiteralToken(node: Node): Boolean + +external fun isTemplateMiddleOrTemplateTail(node: Node): Boolean + +external fun isImportOrExportSpecifier(node: Node): Boolean + +external fun isTypeOnlyImportOrExportDeclaration(node: Node): Boolean + +external fun isStringTextContainingNode(node: Node): Boolean + +external fun isModifier(node: Node): Boolean + +external fun isEntityName(node: Node): Boolean + +external fun isPropertyName(node: Node): Boolean + +external fun isBindingName(node: Node): Boolean + +external fun isFunctionLike(node: Node?): Boolean + +external fun isClassElement(node: Node): Boolean + +external fun isClassLike(node: Node): Boolean + +external fun isAccessor(node: Node): Boolean + +external fun isTypeElement(node: Node): Boolean + +external fun isClassOrTypeElement(node: Node): Boolean + +external fun isObjectLiteralElementLike(node: Node): Boolean + +external fun isTypeNode(node: Node): Boolean + +external fun isFunctionOrConstructorTypeNode(node: Node): Boolean + +external fun isPropertyAccessOrQualifiedName(node: Node): Boolean + +external fun isCallLikeExpression(node: Node): Boolean + +external fun isCallOrNewExpression(node: Node): Boolean + +external fun isTemplateLiteral(node: Node): Boolean + +external fun isAssertionExpression(node: Node): Boolean + +external fun isIterationStatement(node: Node, lookInLabeledStatements: Boolean): Boolean + +external fun isJsxOpeningLikeElement(node: Node): Boolean + +external fun isCaseOrDefaultClause(node: Node): Boolean + +external fun isJSDocCommentContainingNode(node: Node): Boolean + +external fun isSetAccessor(node: Node): Boolean + +external fun isGetAccessor(node: Node): Boolean + +external fun hasOnlyExpressionInitializer(node: Node): Boolean + +external fun isObjectLiteralElement(node: Node): Boolean + +external fun isStringLiteralLike(node: Node): Boolean + +external fun isJSDocLinkLike(node: Node): Boolean + +external var factory: NodeFactory + +external fun createUnparsedSourceFile(text: String): UnparsedSource + +external fun createUnparsedSourceFile(inputFile: InputFiles, type: String /* "js" | "dts" */, stripInternal: Boolean = definedExternally): UnparsedSource + +external fun createUnparsedSourceFile(inputFile: InputFiles, type: String /* "js" | "dts" */): UnparsedSource + +external fun createUnparsedSourceFile(text: String, mapPath: String?, map: String?): UnparsedSource + +external fun createInputFiles(javascriptText: String, declarationText: String): InputFiles + +external fun createInputFiles(readFileText: (path: String) -> String?, javascriptPath: String, javascriptMapPath: String?, declarationPath: String, declarationMapPath: String?, buildInfoPath: String?): InputFiles + +external fun createInputFiles(javascriptText: String, declarationText: String, javascriptMapPath: String?, javascriptMapText: String?, declarationMapPath: String?, declarationMapText: String?): InputFiles + +external fun createSourceMapSource(fileName: String, text: String, skipTrivia: (pos: Number) -> Number = definedExternally): SourceMapSource + +external fun setOriginalNode(node: T, original: Node?): T + +external fun disposeEmitNodes(sourceFile: SourceFile?) + +external fun setEmitFlags(node: T, emitFlags: EmitFlags): T + +external fun getSourceMapRange(node: Node): SourceMapRange + +external fun setSourceMapRange(node: T, range: SourceMapRange?): T + +external fun getTokenSourceMapRange(node: Node, token: SyntaxKind): SourceMapRange? + +external fun setTokenSourceMapRange(node: T, token: SyntaxKind, range: SourceMapRange?): T + +external fun getCommentRange(node: Node): TextRange + +external fun setCommentRange(node: T, range: TextRange): T + +external fun getSyntheticLeadingComments(node: Node): Array? + +external fun setSyntheticLeadingComments(node: T, comments: Array?): T + +external fun addSyntheticLeadingComment(node: T, kind: SyntaxKind.SingleLineCommentTrivia, text: String, hasTrailingNewLine: Boolean = definedExternally): T + +external fun addSyntheticLeadingComment(node: T, kind: SyntaxKind.SingleLineCommentTrivia, text: String): T + +external fun addSyntheticLeadingComment(node: T, kind: SyntaxKind.MultiLineCommentTrivia, text: String, hasTrailingNewLine: Boolean = definedExternally): T + +external fun addSyntheticLeadingComment(node: T, kind: SyntaxKind.MultiLineCommentTrivia, text: String): T + +external fun getSyntheticTrailingComments(node: Node): Array? + +external fun setSyntheticTrailingComments(node: T, comments: Array?): T + +external fun addSyntheticTrailingComment(node: T, kind: SyntaxKind.SingleLineCommentTrivia, text: String, hasTrailingNewLine: Boolean = definedExternally): T + +external fun addSyntheticTrailingComment(node: T, kind: SyntaxKind.SingleLineCommentTrivia, text: String): T + +external fun addSyntheticTrailingComment(node: T, kind: SyntaxKind.MultiLineCommentTrivia, text: String, hasTrailingNewLine: Boolean = definedExternally): T + +external fun addSyntheticTrailingComment(node: T, kind: SyntaxKind.MultiLineCommentTrivia, text: String): T + +external fun moveSyntheticComments(node: T, original: Node): T + +external fun getConstantValue(node: PropertyAccessExpression): dynamic /* String? | Number? */ + +external fun getConstantValue(node: ElementAccessExpression): dynamic /* String? | Number? */ + +external fun setConstantValue(node: PropertyAccessExpression, value: String): dynamic /* PropertyAccessExpression | ElementAccessExpression */ + +external fun setConstantValue(node: PropertyAccessExpression, value: Number): dynamic /* PropertyAccessExpression | ElementAccessExpression */ + +external fun setConstantValue(node: ElementAccessExpression, value: String): dynamic /* PropertyAccessExpression | ElementAccessExpression */ + +external fun setConstantValue(node: ElementAccessExpression, value: Number): dynamic /* PropertyAccessExpression | ElementAccessExpression */ + +external fun addEmitHelper(node: T, helper: ScopedEmitHelper): T + +external fun addEmitHelper(node: T, helper: UnscopedEmitHelper): T + +external fun addEmitHelpers(node: T, helpers: Array?): T + +external fun removeEmitHelper(node: Node, helper: ScopedEmitHelper): Boolean + +external fun removeEmitHelper(node: Node, helper: UnscopedEmitHelper): Boolean + +external fun getEmitHelpers(node: Node): Array? + +external fun moveEmitHelpers(source: Node, target: Node, predicate: (helper: Any /* ScopedEmitHelper | UnscopedEmitHelper */) -> Boolean) + +external fun isNumericLiteral(node: Node): Boolean + +external fun isBigIntLiteral(node: Node): Boolean + +external fun isStringLiteral(node: Node): Boolean + +external fun isJsxText(node: Node): Boolean + +external fun isRegularExpressionLiteral(node: Node): Boolean + +external fun isNoSubstitutionTemplateLiteral(node: Node): Boolean + +external fun isTemplateHead(node: Node): Boolean + +external fun isTemplateMiddle(node: Node): Boolean + +external fun isTemplateTail(node: Node): Boolean + +external fun isDotDotDotToken(node: Node): Boolean + +external fun isPlusToken(node: Node): Boolean + +external fun isMinusToken(node: Node): Boolean + +external fun isAsteriskToken(node: Node): Boolean + +external fun isIdentifier(node: Node): Boolean + +external fun isPrivateIdentifier(node: Node): Boolean + +external fun isQualifiedName(node: Node): Boolean + +external fun isComputedPropertyName(node: Node): Boolean + +external fun isTypeParameterDeclaration(node: Node): Boolean + +external fun isParameter(node: Node): Boolean + +external fun isDecorator(node: Node): Boolean + +external fun isPropertySignature(node: Node): Boolean + +external fun isPropertyDeclaration(node: Node): Boolean + +external fun isMethodSignature(node: Node): Boolean + +external fun isMethodDeclaration(node: Node): Boolean + +external fun isClassStaticBlockDeclaration(node: Node): Boolean + +external fun isConstructorDeclaration(node: Node): Boolean + +external fun isGetAccessorDeclaration(node: Node): Boolean + +external fun isSetAccessorDeclaration(node: Node): Boolean + +external fun isCallSignatureDeclaration(node: Node): Boolean + +external fun isConstructSignatureDeclaration(node: Node): Boolean + +external fun isIndexSignatureDeclaration(node: Node): Boolean + +external fun isTypePredicateNode(node: Node): Boolean + +external fun isTypeReferenceNode(node: Node): Boolean + +external fun isFunctionTypeNode(node: Node): Boolean + +external fun isConstructorTypeNode(node: Node): Boolean + +external fun isTypeQueryNode(node: Node): Boolean + +external fun isTypeLiteralNode(node: Node): Boolean + +external fun isArrayTypeNode(node: Node): Boolean + +external fun isTupleTypeNode(node: Node): Boolean + +external fun isNamedTupleMember(node: Node): Boolean + +external fun isOptionalTypeNode(node: Node): Boolean + +external fun isRestTypeNode(node: Node): Boolean + +external fun isUnionTypeNode(node: Node): Boolean + +external fun isIntersectionTypeNode(node: Node): Boolean + +external fun isConditionalTypeNode(node: Node): Boolean + +external fun isInferTypeNode(node: Node): Boolean + +external fun isParenthesizedTypeNode(node: Node): Boolean + +external fun isThisTypeNode(node: Node): Boolean + +external fun isTypeOperatorNode(node: Node): Boolean + +external fun isIndexedAccessTypeNode(node: Node): Boolean + +external fun isMappedTypeNode(node: Node): Boolean + +external fun isLiteralTypeNode(node: Node): Boolean + +external fun isImportTypeNode(node: Node): Boolean + +external fun isTemplateLiteralTypeSpan(node: Node): Boolean + +external fun isTemplateLiteralTypeNode(node: Node): Boolean + +external fun isObjectBindingPattern(node: Node): Boolean + +external fun isArrayBindingPattern(node: Node): Boolean + +external fun isBindingElement(node: Node): Boolean + +external fun isArrayLiteralExpression(node: Node): Boolean + +external fun isObjectLiteralExpression(node: Node): Boolean + +external fun isPropertyAccessExpression(node: Node): Boolean + +external fun isElementAccessExpression(node: Node): Boolean + +external fun isCallExpression(node: Node): Boolean + +external fun isNewExpression(node: Node): Boolean + +external fun isTaggedTemplateExpression(node: Node): Boolean + +external fun isTypeAssertionExpression(node: Node): Boolean + +external fun isParenthesizedExpression(node: Node): Boolean + +external fun isFunctionExpression(node: Node): Boolean + +external fun isArrowFunction(node: Node): Boolean + +external fun isDeleteExpression(node: Node): Boolean + +external fun isTypeOfExpression(node: Node): Boolean + +external fun isVoidExpression(node: Node): Boolean + +external fun isAwaitExpression(node: Node): Boolean + +external fun isPrefixUnaryExpression(node: Node): Boolean + +external fun isPostfixUnaryExpression(node: Node): Boolean + +external fun isBinaryExpression(node: Node): Boolean + +external fun isConditionalExpression(node: Node): Boolean + +external fun isTemplateExpression(node: Node): Boolean + +external fun isYieldExpression(node: Node): Boolean + +external fun isSpreadElement(node: Node): Boolean + +external fun isClassExpression(node: Node): Boolean + +external fun isOmittedExpression(node: Node): Boolean + +external fun isExpressionWithTypeArguments(node: Node): Boolean + +external fun isAsExpression(node: Node): Boolean + +external fun isNonNullExpression(node: Node): Boolean + +external fun isMetaProperty(node: Node): Boolean + +external fun isSyntheticExpression(node: Node): Boolean + +external fun isPartiallyEmittedExpression(node: Node): Boolean + +external fun isCommaListExpression(node: Node): Boolean + +external fun isTemplateSpan(node: Node): Boolean + +external fun isSemicolonClassElement(node: Node): Boolean + +external fun isBlock(node: Node): Boolean + +external fun isVariableStatement(node: Node): Boolean + +external fun isEmptyStatement(node: Node): Boolean + +external fun isExpressionStatement(node: Node): Boolean + +external fun isIfStatement(node: Node): Boolean + +external fun isDoStatement(node: Node): Boolean + +external fun isWhileStatement(node: Node): Boolean + +external fun isForStatement(node: Node): Boolean + +external fun isForInStatement(node: Node): Boolean + +external fun isForOfStatement(node: Node): Boolean + +external fun isContinueStatement(node: Node): Boolean + +external fun isBreakStatement(node: Node): Boolean + +external fun isReturnStatement(node: Node): Boolean + +external fun isWithStatement(node: Node): Boolean + +external fun isSwitchStatement(node: Node): Boolean + +external fun isLabeledStatement(node: Node): Boolean + +external fun isThrowStatement(node: Node): Boolean + +external fun isTryStatement(node: Node): Boolean + +external fun isDebuggerStatement(node: Node): Boolean + +external fun isVariableDeclaration(node: Node): Boolean + +external fun isVariableDeclarationList(node: Node): Boolean + +external fun isFunctionDeclaration(node: Node): Boolean + +external fun isClassDeclaration(node: Node): Boolean + +external fun isInterfaceDeclaration(node: Node): Boolean + +external fun isTypeAliasDeclaration(node: Node): Boolean + +external fun isEnumDeclaration(node: Node): Boolean + +external fun isModuleDeclaration(node: Node): Boolean + +external fun isModuleBlock(node: Node): Boolean + +external fun isCaseBlock(node: Node): Boolean + +external fun isNamespaceExportDeclaration(node: Node): Boolean + +external fun isImportEqualsDeclaration(node: Node): Boolean + +external fun isImportDeclaration(node: Node): Boolean + +external fun isImportClause(node: Node): Boolean + +external fun isNamespaceImport(node: Node): Boolean + +external fun isNamespaceExport(node: Node): Boolean + +external fun isNamedImports(node: Node): Boolean + +external fun isImportSpecifier(node: Node): Boolean + +external fun isExportAssignment(node: Node): Boolean + +external fun isExportDeclaration(node: Node): Boolean + +external fun isNamedExports(node: Node): Boolean + +external fun isExportSpecifier(node: Node): Boolean + +external fun isMissingDeclaration(node: Node): Boolean + +external fun isNotEmittedStatement(node: Node): Boolean + +external fun isExternalModuleReference(node: Node): Boolean + +external fun isJsxElement(node: Node): Boolean + +external fun isJsxSelfClosingElement(node: Node): Boolean + +external fun isJsxOpeningElement(node: Node): Boolean + +external fun isJsxClosingElement(node: Node): Boolean + +external fun isJsxFragment(node: Node): Boolean + +external fun isJsxOpeningFragment(node: Node): Boolean + +external fun isJsxClosingFragment(node: Node): Boolean + +external fun isJsxAttribute(node: Node): Boolean + +external fun isJsxAttributes(node: Node): Boolean + +external fun isJsxSpreadAttribute(node: Node): Boolean + +external fun isJsxExpression(node: Node): Boolean + +external fun isCaseClause(node: Node): Boolean + +external fun isDefaultClause(node: Node): Boolean + +external fun isHeritageClause(node: Node): Boolean + +external fun isCatchClause(node: Node): Boolean + +external fun isPropertyAssignment(node: Node): Boolean + +external fun isShorthandPropertyAssignment(node: Node): Boolean + +external fun isSpreadAssignment(node: Node): Boolean + +external fun isEnumMember(node: Node): Boolean + +external fun isUnparsedPrepend(node: Node): Boolean + +external fun isSourceFile(node: Node): Boolean + +external fun isBundle(node: Node): Boolean + +external fun isUnparsedSource(node: Node): Boolean + +external fun isJSDocTypeExpression(node: Node): Boolean + +external fun isJSDocNameReference(node: Node): Boolean + +external fun isJSDocMemberName(node: Node): Boolean + +external fun isJSDocLink(node: Node): Boolean + +external fun isJSDocLinkCode(node: Node): Boolean + +external fun isJSDocLinkPlain(node: Node): Boolean + +external fun isJSDocAllType(node: Node): Boolean + +external fun isJSDocUnknownType(node: Node): Boolean + +external fun isJSDocNullableType(node: Node): Boolean + +external fun isJSDocNonNullableType(node: Node): Boolean + +external fun isJSDocOptionalType(node: Node): Boolean + +external fun isJSDocFunctionType(node: Node): Boolean + +external fun isJSDocVariadicType(node: Node): Boolean + +external fun isJSDocNamepathType(node: Node): Boolean + +external fun isJSDoc(node: Node): Boolean + +external fun isJSDocTypeLiteral(node: Node): Boolean + +external fun isJSDocSignature(node: Node): Boolean + +external fun isJSDocAugmentsTag(node: Node): Boolean + +external fun isJSDocAuthorTag(node: Node): Boolean + +external fun isJSDocClassTag(node: Node): Boolean + +external fun isJSDocCallbackTag(node: Node): Boolean + +external fun isJSDocPublicTag(node: Node): Boolean + +external fun isJSDocPrivateTag(node: Node): Boolean + +external fun isJSDocProtectedTag(node: Node): Boolean + +external fun isJSDocReadonlyTag(node: Node): Boolean + +external fun isJSDocOverrideTag(node: Node): Boolean + +external fun isJSDocDeprecatedTag(node: Node): Boolean + +external fun isJSDocSeeTag(node: Node): Boolean + +external fun isJSDocEnumTag(node: Node): Boolean + +external fun isJSDocParameterTag(node: Node): Boolean + +external fun isJSDocReturnTag(node: Node): Boolean + +external fun isJSDocThisTag(node: Node): Boolean + +external fun isJSDocTypeTag(node: Node): Boolean + +external fun isJSDocTemplateTag(node: Node): Boolean + +external fun isJSDocTypedefTag(node: Node): Boolean + +external fun isJSDocUnknownTag(node: Node): Boolean + +external fun isJSDocPropertyTag(node: Node): Boolean + +external fun isJSDocImplementsTag(node: Node): Boolean + +external fun setTextRange(range: T, location: TextRange?): T + +external fun forEachChild(node: Node, cbNode: (node: Node) -> T?, cbNodes: (nodes: NodeArray) -> T? = definedExternally): T? + +external fun createSourceFile(fileName: String, sourceText: String, languageVersion: ScriptTarget, setParentNodes: Boolean = definedExternally, scriptKind: ScriptKind = definedExternally): SourceFile + +external fun parseIsolatedEntityName(text: String, languageVersion: ScriptTarget): dynamic /* Identifier? | QualifiedName? */ + +external fun parseJsonText(fileName: String, sourceText: String): JsonSourceFile + +external fun isExternalModule(file: SourceFile): Boolean + +external fun updateSourceFile(sourceFile: SourceFile, newText: String, textChangeRange: TextChangeRange, aggressiveChecks: Boolean = definedExternally): SourceFile + +external fun parseCommandLine(commandLine: Array, readFile: (path: String) -> String? = definedExternally): ParsedCommandLine + +external interface ConfigFileDiagnosticsReporter { + var onUnRecoverableConfigFileDiagnostic: DiagnosticReporter +} + +external interface ParseConfigFileHost : ParseConfigHost, ConfigFileDiagnosticsReporter { + fun getCurrentDirectory(): String +} + +external fun getParsedCommandLineOfConfigFile(configFileName: String, optionsToExtend: CompilerOptions?, host: ParseConfigFileHost, extendedConfigCache: Map = definedExternally, watchOptionsToExtend: WatchOptions = definedExternally, extraFileExtensions: Array = definedExternally): ParsedCommandLine? + +external interface `T$25` { + var config: Any? + get() = definedExternally + set(value) = definedExternally + var error: Diagnostic? + get() = definedExternally + set(value) = definedExternally +} + +external fun readConfigFile(fileName: String, readFile: (path: String) -> String?): `T$25` + +external fun parseConfigFileTextToJson(fileName: String, jsonText: String): `T$25` + +external fun readJsonConfigFile(fileName: String, readFile: (path: String) -> String?): TsConfigSourceFile + +external fun convertToObject(sourceFile: JsonSourceFile, errors: Push): Any + +external fun parseJsonConfigFileContent(json: Any, host: ParseConfigHost, basePath: String, existingOptions: CompilerOptions = definedExternally, configFileName: String = definedExternally, resolutionStack: Array = definedExternally, extraFileExtensions: Array = definedExternally, extendedConfigCache: Map = definedExternally, existingWatchOptions: WatchOptions = definedExternally): ParsedCommandLine + +external fun parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: String, existingOptions: CompilerOptions = definedExternally, configFileName: String = definedExternally, resolutionStack: Array = definedExternally, extraFileExtensions: Array = definedExternally, extendedConfigCache: Map = definedExternally, existingWatchOptions: WatchOptions = definedExternally): ParsedCommandLine + +external interface ParsedTsconfig { + var raw: Any + var options: CompilerOptions? + get() = definedExternally + set(value) = definedExternally + var watchOptions: WatchOptions? + get() = definedExternally + set(value) = definedExternally + var typeAcquisition: TypeAcquisition? + get() = definedExternally + set(value) = definedExternally + var extendedConfigPath: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface ExtendedConfigCacheEntry { + var extendedResult: TsConfigSourceFile + var extendedConfig: ParsedTsconfig? +} + +external interface `T$26` { + var options: CompilerOptions + var errors: Array +} + +external fun convertCompilerOptionsFromJson(jsonOptions: Any, basePath: String, configFileName: String = definedExternally): `T$26` + +external interface `T$27` { + var options: TypeAcquisition + var errors: Array +} + +external fun convertTypeAcquisitionFromJson(jsonOptions: Any, basePath: String, configFileName: String = definedExternally): `T$27` + +external fun getEffectiveTypeRoots(options: CompilerOptions, host: GetEffectiveTypeRootsHost): Array? + +external fun resolveTypeReferenceDirective(typeReferenceDirectiveName: String, containingFile: String?, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference: ResolvedProjectReference = definedExternally, cache: TypeReferenceDirectiveResolutionCache = definedExternally): ResolvedTypeReferenceDirectiveWithFailedLookupLocations + +external fun getAutomaticTypeDirectiveNames(options: CompilerOptions, host: ModuleResolutionHost): Array + +external interface TypeReferenceDirectiveResolutionCache : PerDirectoryResolutionCache, PackageJsonInfoCache + +external interface PerDirectoryResolutionCache { + fun getOrCreateCacheForDirectory(directoryName: String, redirectedReference: ResolvedProjectReference = definedExternally): Map + fun clear() + fun update(options: CompilerOptions) +} + +external interface ModuleResolutionCache : PerDirectoryResolutionCache, NonRelativeModuleNameResolutionCache, PackageJsonInfoCache { + fun getPackageJsonInfoCache(): PackageJsonInfoCache +} + +external interface NonRelativeModuleNameResolutionCache : PackageJsonInfoCache { + fun getOrCreateCacheForModuleName(nonRelativeModuleName: String, redirectedReference: ResolvedProjectReference = definedExternally): PerModuleNameCache +} + +external interface PackageJsonInfoCache { + fun clear() +} + +external interface PerModuleNameCache { + fun get(directory: String): ResolvedModuleWithFailedLookupLocations? + fun set(directory: String, result: ResolvedModuleWithFailedLookupLocations) +} + +external fun createModuleResolutionCache(currentDirectory: String, getCanonicalFileName: (s: String) -> String, options: CompilerOptions = definedExternally): ModuleResolutionCache + +external fun createTypeReferenceDirectiveResolutionCache(currentDirectory: String, getCanonicalFileName: (s: String) -> String, options: CompilerOptions = definedExternally, packageJsonInfoCache: PackageJsonInfoCache = definedExternally): TypeReferenceDirectiveResolutionCache + +external fun resolveModuleNameFromCache(moduleName: String, containingFile: String, cache: ModuleResolutionCache): ResolvedModuleWithFailedLookupLocations? + +external fun resolveModuleName(moduleName: String, containingFile: String, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache: ModuleResolutionCache = definedExternally, redirectedReference: ResolvedProjectReference = definedExternally): ResolvedModuleWithFailedLookupLocations + +external fun nodeModuleNameResolver(moduleName: String, containingFile: String, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache: ModuleResolutionCache = definedExternally, redirectedReference: ResolvedProjectReference = definedExternally): ResolvedModuleWithFailedLookupLocations + +external fun classicNameResolver(moduleName: String, containingFile: String, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache: NonRelativeModuleNameResolutionCache = definedExternally, redirectedReference: ResolvedProjectReference = definedExternally): ResolvedModuleWithFailedLookupLocations + +external fun visitNode(node: T, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, lift: (node: Array) -> T = definedExternally): T + +external fun visitNode(node: T, visitor: Visitor?): T + +external fun visitNode(node: T, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): T + +external fun visitNode(node: T?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, lift: (node: Array) -> T = definedExternally): T? + +external fun visitNode(node: T?, visitor: Visitor?): T? + +external fun visitNode(node: T?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): T? + +external fun visitNodes(nodes: NodeArray, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally, count: Number = definedExternally): NodeArray + +external fun visitNodes(nodes: NodeArray, visitor: Visitor?): NodeArray + +external fun visitNodes(nodes: NodeArray, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): NodeArray + +external fun visitNodes(nodes: NodeArray, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally): NodeArray + +external fun visitNodes(nodes: NodeArray?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally, count: Number = definedExternally): NodeArray? + +external fun visitNodes(nodes: NodeArray?, visitor: Visitor?): NodeArray? + +external fun visitNodes(nodes: NodeArray?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally): NodeArray? + +external fun visitNodes(nodes: NodeArray?, visitor: Visitor?, test: (node: Node) -> Boolean = definedExternally, start: Number = definedExternally): NodeArray? + +external fun visitLexicalEnvironment(statements: NodeArray, visitor: Visitor, context: TransformationContext, start: Number = definedExternally, ensureUseStrict: Boolean = definedExternally, nodesVisitor: NodesVisitor = definedExternally): NodeArray + +external fun visitParameterList(nodes: NodeArray, visitor: Visitor, context: TransformationContext, nodesVisitor: NodesVisitor = definedExternally): NodeArray + +external fun visitParameterList(nodes: NodeArray, visitor: Visitor, context: TransformationContext): NodeArray + +external fun visitParameterList(nodes: NodeArray?, visitor: Visitor, context: TransformationContext, nodesVisitor: NodesVisitor = definedExternally): NodeArray? + +external fun visitParameterList(nodes: NodeArray?, visitor: Visitor, context: TransformationContext): NodeArray? + +external fun visitFunctionBody(node: FunctionBody, visitor: Visitor, context: TransformationContext): dynamic /* FunctionBody */ + +external fun visitFunctionBody(node: Expression, visitor: Visitor, context: TransformationContext): dynamic /* FunctionBody | Expression */ + +external fun visitIterationBody(body: Statement, visitor: Visitor, context: TransformationContext): Statement + +external fun visitEachChild(node: T, visitor: Visitor, context: TransformationContext): T + +external fun visitEachChild(node: T?, visitor: Visitor, context: TransformationContext, nodesVisitor: Any = definedExternally, tokenVisitor: Visitor = definedExternally): T? + +external fun visitEachChild(node: T?, visitor: Visitor, context: TransformationContext): T? + +external fun visitEachChild(node: T?, visitor: Visitor, context: TransformationContext, nodesVisitor: Any = definedExternally): T? + +external fun getTsBuildInfoEmitOutputFilePath(options: CompilerOptions): String? + +external fun getOutputFileNames(commandLine: ParsedCommandLine, inputFileName: String, ignoreCase: Boolean): Array + +external fun createPrinter(printerOptions: PrinterOptions = definedExternally, handlers: PrintHandlers = definedExternally): Printer + +external fun findConfigFile(searchPath: String, fileExists: (fileName: String) -> Boolean, configName: String = definedExternally): String? + +external fun resolveTripleslashReference(moduleName: String, containingFile: String): String + +external fun createCompilerHost(options: CompilerOptions, setParentNodes: Boolean = definedExternally): CompilerHost + +external fun getPreEmitDiagnostics(program: Program, sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + +external interface FormatDiagnosticsHost { + fun getCurrentDirectory(): String + fun getCanonicalFileName(fileName: String): String + fun getNewLine(): String +} + +external fun formatDiagnostics(diagnostics: Array, host: FormatDiagnosticsHost): String + +external fun formatDiagnostic(diagnostic: Diagnostic, host: FormatDiagnosticsHost): String + +external fun formatDiagnosticsWithColorAndContext(diagnostics: Array, host: FormatDiagnosticsHost): String + +external fun flattenDiagnosticMessageText(diag: String?, newLine: String, indent: Number = definedExternally): String + +external fun flattenDiagnosticMessageText(diag: String?, newLine: String): String + +external fun flattenDiagnosticMessageText(diag: DiagnosticMessageChain?, newLine: String, indent: Number = definedExternally): String + +external fun flattenDiagnosticMessageText(diag: DiagnosticMessageChain?, newLine: String): String + +external fun getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): Array + +external fun createProgram(createProgramOptions: CreateProgramOptions): Program + +external fun createProgram(rootNames: Array, options: CompilerOptions, host: CompilerHost = definedExternally, oldProgram: Program = definedExternally, configFileParsingDiagnostics: Array = definedExternally): Program + +external fun createProgram(rootNames: Array, options: CompilerOptions): Program + +external fun createProgram(rootNames: Array, options: CompilerOptions, host: CompilerHost = definedExternally): Program + +external fun createProgram(rootNames: Array, options: CompilerOptions, host: CompilerHost = definedExternally, oldProgram: Program = definedExternally): Program + +external interface ResolveProjectReferencePathHost { + fun fileExists(fileName: String): Boolean +} + +external fun resolveProjectReferencePath(ref: ProjectReference): String /* String & `T$5` */ + +external fun resolveProjectReferencePath(host: ResolveProjectReferencePathHost, ref: ProjectReference): String /* String & `T$5` */ + +external interface EmitOutput { + var outputFiles: Array + var emitSkipped: Boolean +} + +external interface OutputFile { + var name: String + var writeByteOrderMark: Boolean + var text: String +} + +external interface `T$28` { + var result: T + var affected: dynamic /* SourceFile | Program */ + get() = definedExternally + set(value) = definedExternally +} + +external interface BuilderProgramHost { + fun useCaseSensitiveFileNames(): Boolean + var createHash: ((data: String) -> String)? + get() = definedExternally + set(value) = definedExternally + var writeFile: WriteFileCallback? + get() = definedExternally + set(value) = definedExternally +} + +external interface BuilderProgram { + fun getProgram(): Program + fun getCompilerOptions(): CompilerOptions + fun getSourceFile(fileName: String): SourceFile? + fun getSourceFiles(): Array + fun getOptionsDiagnostics(cancellationToken: CancellationToken = definedExternally): Array + fun getGlobalDiagnostics(cancellationToken: CancellationToken = definedExternally): Array + fun getConfigFileParsingDiagnostics(): Array + fun getSyntacticDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun getDeclarationDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun getAllDependencies(sourceFile: SourceFile): Array + fun getSemanticDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun emit(targetSourceFile: SourceFile = definedExternally, writeFile: WriteFileCallback = definedExternally, cancellationToken: CancellationToken = definedExternally, emitOnlyDtsFiles: Boolean = definedExternally, customTransformers: CustomTransformers = definedExternally): EmitResult + fun getCurrentDirectory(): String +} + +external interface SemanticDiagnosticsBuilderProgram : BuilderProgram { + fun getSemanticDiagnosticsOfNextAffectedFile(cancellationToken: CancellationToken = definedExternally, ignoreSourceFile: (sourceFile: SourceFile) -> Boolean = definedExternally): `T$28`>? +} + +external interface EmitAndSemanticDiagnosticsBuilderProgram : SemanticDiagnosticsBuilderProgram { + fun emitNextAffectedFile(writeFile: WriteFileCallback = definedExternally, cancellationToken: CancellationToken = definedExternally, emitOnlyDtsFiles: Boolean = definedExternally, customTransformers: CustomTransformers = definedExternally): `T$28`? +} + +external fun createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram: SemanticDiagnosticsBuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally): SemanticDiagnosticsBuilderProgram + +external fun createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost): SemanticDiagnosticsBuilderProgram + +external fun createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram: SemanticDiagnosticsBuilderProgram = definedExternally): SemanticDiagnosticsBuilderProgram + +external fun createSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: SemanticDiagnosticsBuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally, projectReferences: Array = definedExternally): SemanticDiagnosticsBuilderProgram + +external fun createSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?): SemanticDiagnosticsBuilderProgram + +external fun createSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally): SemanticDiagnosticsBuilderProgram + +external fun createSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: SemanticDiagnosticsBuilderProgram = definedExternally): SemanticDiagnosticsBuilderProgram + +external fun createSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: SemanticDiagnosticsBuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally): SemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram: EmitAndSemanticDiagnosticsBuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram: EmitAndSemanticDiagnosticsBuilderProgram = definedExternally): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: EmitAndSemanticDiagnosticsBuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally, projectReferences: Array = definedExternally): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: EmitAndSemanticDiagnosticsBuilderProgram = definedExternally): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: EmitAndSemanticDiagnosticsBuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally): EmitAndSemanticDiagnosticsBuilderProgram + +external fun createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram: BuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally): BuilderProgram + +external fun createAbstractBuilder(newProgram: Program, host: BuilderProgramHost): BuilderProgram + +external fun createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram: BuilderProgram = definedExternally): BuilderProgram + +external fun createAbstractBuilder(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: BuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally, projectReferences: Array = definedExternally): BuilderProgram + +external fun createAbstractBuilder(rootNames: Array?, options: CompilerOptions?): BuilderProgram + +external fun createAbstractBuilder(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally): BuilderProgram + +external fun createAbstractBuilder(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: BuilderProgram = definedExternally): BuilderProgram + +external fun createAbstractBuilder(rootNames: Array?, options: CompilerOptions?, host: CompilerHost = definedExternally, oldProgram: BuilderProgram = definedExternally, configFileParsingDiagnostics: Array = definedExternally): BuilderProgram + +external interface ReadBuildProgramHost { + fun useCaseSensitiveFileNames(): Boolean + fun getCurrentDirectory(): String + fun readFile(fileName: String): String? +} + +external fun readBuilderProgram(compilerOptions: CompilerOptions, host: ReadBuildProgramHost): EmitAndSemanticDiagnosticsBuilderProgram? + +external fun createIncrementalCompilerHost(options: CompilerOptions, system: System = definedExternally): CompilerHost + +external interface IncrementalProgramOptions { + var rootNames: Array + var options: CompilerOptions + var configFileParsingDiagnostics: Array? + get() = definedExternally + set(value) = definedExternally + var projectReferences: Array? + get() = definedExternally + set(value) = definedExternally + var host: CompilerHost? + get() = definedExternally + set(value) = definedExternally + var createProgram: CreateProgram? + get() = definedExternally + set(value) = definedExternally +} + +external fun createIncrementalProgram(__0: IncrementalProgramOptions): T + +external interface WatchHost { + val onWatchStatusChange: ((diagnostic: Diagnostic, newLine: String, options: CompilerOptions, errorCount: Number) -> Unit)? + fun watchFile(path: String, callback: FileWatcherCallback, pollingInterval: Number = definedExternally, options: CompilerOptions = definedExternally): FileWatcher + fun watchDirectory(path: String, callback: DirectoryWatcherCallback, recursive: Boolean = definedExternally, options: CompilerOptions = definedExternally): FileWatcher + val setTimeout: ((callback: (args: Any) -> Unit, ms: Number, args: Any) -> Any)? + val clearTimeout: ((timeoutId: Any) -> Unit)? +} + +external interface ProgramHost { + var createProgram: CreateProgram + fun useCaseSensitiveFileNames(): Boolean + fun getNewLine(): String + fun getCurrentDirectory(): String + fun getDefaultLibFileName(options: CompilerOptions): String + val getDefaultLibLocation: (() -> String)? + val createHash: ((data: String) -> String)? + fun fileExists(path: String): Boolean + fun readFile(path: String, encoding: String = definedExternally): String? + val directoryExists: ((path: String) -> Boolean)? + val getDirectories: ((path: String) -> Array)? + val readDirectory: ((path: String, extensions: Array, exclude: Array, include: Array, depth: Number) -> Array)? + val realpath: ((path: String) -> String)? + val trace: ((s: String) -> Unit)? + val getEnvironmentVariable: ((name: String) -> String?)? + val resolveModuleNames: ((moduleNames: Array, containingFile: String, reusedNames: Array?, redirectedReference: ResolvedProjectReference?, options: CompilerOptions) -> Array)? + val resolveTypeReferenceDirectives: ((typeReferenceDirectiveNames: Array, containingFile: String, redirectedReference: ResolvedProjectReference?, options: CompilerOptions) -> Array)? +} + +external interface WatchCompilerHost : ProgramHost, WatchHost { + val useSourceOfProjectReferenceRedirect: (() -> Boolean)? + val getParsedCommandLine: ((fileName: String) -> ParsedCommandLine?)? + val afterProgramCreate: ((program: T) -> Unit)? +} + +external interface WatchCompilerHostOfFilesAndCompilerOptions : WatchCompilerHost { + var rootFiles: Array + var options: CompilerOptions + var watchOptions: WatchOptions? + get() = definedExternally + set(value) = definedExternally + var projectReferences: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface WatchCompilerHostOfConfigFile : WatchCompilerHost, ConfigFileDiagnosticsReporter { + var configFileName: String + var optionsToExtend: CompilerOptions? + get() = definedExternally + set(value) = definedExternally + var watchOptionsToExtend: WatchOptions? + get() = definedExternally + set(value) = definedExternally + var extraFileExtensions: Array? + get() = definedExternally + set(value) = definedExternally + override var readDirectory: (path: String, extensions: Array, exclude: Array, include: Array, depth: Number) -> Array +} + +external interface Watch { + fun getProgram(): T + fun close() +} + +external interface WatchOfConfigFile : Watch + +external interface WatchOfFilesAndCompilerOptions : Watch { + fun updateRootFileNames(fileNames: Array) +} + +external fun createWatchCompilerHost(configFileName: String, optionsToExtend: CompilerOptions?, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportWatchStatus: WatchStatusReporter = definedExternally, watchOptionsToExtend: WatchOptions = definedExternally, extraFileExtensions: Array = definedExternally): WatchCompilerHostOfConfigFile + +external fun createWatchCompilerHost(configFileName: String, optionsToExtend: CompilerOptions?, system: System): WatchCompilerHostOfConfigFile + +external fun createWatchCompilerHost(configFileName: String, optionsToExtend: CompilerOptions?, system: System, createProgram: CreateProgram = definedExternally): WatchCompilerHostOfConfigFile + +external fun createWatchCompilerHost(configFileName: String, optionsToExtend: CompilerOptions?, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally): WatchCompilerHostOfConfigFile + +external fun createWatchCompilerHost(configFileName: String, optionsToExtend: CompilerOptions?, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportWatchStatus: WatchStatusReporter = definedExternally): WatchCompilerHostOfConfigFile + +external fun createWatchCompilerHost(configFileName: String, optionsToExtend: CompilerOptions?, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportWatchStatus: WatchStatusReporter = definedExternally, watchOptionsToExtend: WatchOptions = definedExternally): WatchCompilerHostOfConfigFile + +external fun createWatchCompilerHost(rootFiles: Array, options: CompilerOptions, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportWatchStatus: WatchStatusReporter = definedExternally, projectReferences: Array = definedExternally, watchOptions: WatchOptions = definedExternally): WatchCompilerHostOfFilesAndCompilerOptions + +external fun createWatchCompilerHost(rootFiles: Array, options: CompilerOptions, system: System): WatchCompilerHostOfFilesAndCompilerOptions + +external fun createWatchCompilerHost(rootFiles: Array, options: CompilerOptions, system: System, createProgram: CreateProgram = definedExternally): WatchCompilerHostOfFilesAndCompilerOptions + +external fun createWatchCompilerHost(rootFiles: Array, options: CompilerOptions, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally): WatchCompilerHostOfFilesAndCompilerOptions + +external fun createWatchCompilerHost(rootFiles: Array, options: CompilerOptions, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportWatchStatus: WatchStatusReporter = definedExternally): WatchCompilerHostOfFilesAndCompilerOptions + +external fun createWatchCompilerHost(rootFiles: Array, options: CompilerOptions, system: System, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportWatchStatus: WatchStatusReporter = definedExternally, projectReferences: Array = definedExternally): WatchCompilerHostOfFilesAndCompilerOptions + +external fun createWatchProgram(host: WatchCompilerHostOfFilesAndCompilerOptions): WatchOfFilesAndCompilerOptions + +external fun createWatchProgram(host: WatchCompilerHostOfConfigFile): WatchOfConfigFile + +external interface BuildOptions { + var dry: Boolean? + get() = definedExternally + set(value) = definedExternally + var force: Boolean? + get() = definedExternally + set(value) = definedExternally + var verbose: Boolean? + get() = definedExternally + set(value) = definedExternally + var incremental: Boolean? + get() = definedExternally + set(value) = definedExternally + var assumeChangesOnlyAffectDirectDependencies: Boolean? + get() = definedExternally + set(value) = definedExternally + var traceResolution: Boolean? + get() = definedExternally + set(value) = definedExternally + @nativeGetter + operator fun get(option: String): dynamic /* String? | Number? | Boolean? | Array? | Array? | MapLike>? | Array? | Array? */ + @nativeSetter + operator fun set(option: String, value: String?) + @nativeSetter + operator fun set(option: String, value: Number?) + @nativeSetter + operator fun set(option: String, value: Boolean?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: MapLike>?) + @nativeSetter + operator fun set(option: String, value: Array?) + @nativeSetter + operator fun set(option: String, value: Array?) +} + +external interface SolutionBuilderHostBase : ProgramHost { + val createDirectory: ((path: String) -> Unit)? + val writeFile: ((path: String, data: String, writeByteOrderMark: Boolean) -> Unit)? + var getCustomTransformers: ((project: String) -> CustomTransformers?)? + get() = definedExternally + set(value) = definedExternally + fun getModifiedTime(fileName: String): Date? + fun setModifiedTime(fileName: String, date: Date) + fun deleteFile(fileName: String) + val getParsedCommandLine: ((fileName: String) -> ParsedCommandLine?)? + var reportDiagnostic: DiagnosticReporter + var reportSolutionBuilderStatus: DiagnosticReporter + val afterProgramEmitAndDiagnostics: ((program: T) -> Unit)? +} + +external interface SolutionBuilderHost : SolutionBuilderHostBase { + var reportErrorSummary: ReportEmitErrorSummary? + get() = definedExternally + set(value) = definedExternally +} + +external interface SolutionBuilderWithWatchHost : SolutionBuilderHostBase, WatchHost + +external interface SolutionBuilder { + fun build(project: String = definedExternally, cancellationToken: CancellationToken = definedExternally, writeFile: WriteFileCallback = definedExternally, getCustomTransformers: (project: String) -> CustomTransformers = definedExternally): ExitStatus + fun clean(project: String = definedExternally): ExitStatus + fun buildReferences(project: String, cancellationToken: CancellationToken = definedExternally, writeFile: WriteFileCallback = definedExternally, getCustomTransformers: (project: String) -> CustomTransformers = definedExternally): ExitStatus + fun cleanReferences(project: String = definedExternally): ExitStatus + fun getNextInvalidatedProject(cancellationToken: CancellationToken = definedExternally): dynamic /* UpdateOutputFileStampsProject? | BuildInvalidedProject? | UpdateBundleProject? */ +} + +external fun createBuilderStatusReporter(system: System, pretty: Boolean = definedExternally): DiagnosticReporter + +external fun createSolutionBuilderHost(system: System = definedExternally, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportSolutionBuilderStatus: DiagnosticReporter = definedExternally, reportErrorSummary: ReportEmitErrorSummary = definedExternally): SolutionBuilderHost + +external fun createSolutionBuilderWithWatchHost(system: System = definedExternally, createProgram: CreateProgram = definedExternally, reportDiagnostic: DiagnosticReporter = definedExternally, reportSolutionBuilderStatus: DiagnosticReporter = definedExternally, reportWatchStatus: WatchStatusReporter = definedExternally): SolutionBuilderWithWatchHost + +external fun createSolutionBuilder(host: SolutionBuilderHost, rootNames: Array, defaultOptions: BuildOptions): SolutionBuilder + +external fun createSolutionBuilderWithWatch(host: SolutionBuilderWithWatchHost, rootNames: Array, defaultOptions: BuildOptions, baseWatchOptions: WatchOptions = definedExternally): SolutionBuilder + +external enum class InvalidatedProjectKind { + Build /* = 0 */, + UpdateBundle /* = 1 */, + UpdateOutputFileStamps /* = 2 */ +} + +external interface InvalidatedProjectBase { + var kind: InvalidatedProjectKind + var project: String /* String & `T$5` */ + fun done(cancellationToken: CancellationToken = definedExternally, writeFile: WriteFileCallback = definedExternally, customTransformers: CustomTransformers = definedExternally): ExitStatus + fun getCompilerOptions(): CompilerOptions + fun getCurrentDirectory(): String +} + +external interface UpdateOutputFileStampsProject : InvalidatedProjectBase { + fun updateOutputFileStatmps() +} + +external interface BuildInvalidedProject : InvalidatedProjectBase { + fun getBuilderProgram(): T? + fun getProgram(): Program? + fun getSourceFile(fileName: String): SourceFile? + fun getSourceFiles(): Array + fun getOptionsDiagnostics(cancellationToken: CancellationToken = definedExternally): Array + fun getGlobalDiagnostics(cancellationToken: CancellationToken = definedExternally): Array + fun getConfigFileParsingDiagnostics(): Array + fun getSyntacticDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun getAllDependencies(sourceFile: SourceFile): Array + fun getSemanticDiagnostics(sourceFile: SourceFile = definedExternally, cancellationToken: CancellationToken = definedExternally): Array + fun getSemanticDiagnosticsOfNextAffectedFile(cancellationToken: CancellationToken = definedExternally, ignoreSourceFile: (sourceFile: SourceFile) -> Boolean = definedExternally): `T$28`>? + fun emit(targetSourceFile: SourceFile = definedExternally, writeFile: WriteFileCallback = definedExternally, cancellationToken: CancellationToken = definedExternally, emitOnlyDtsFiles: Boolean = definedExternally, customTransformers: CustomTransformers = definedExternally): EmitResult? +} + +external interface UpdateBundleProject : InvalidatedProjectBase { + fun emit(writeFile: WriteFileCallback = definedExternally, customTransformers: CustomTransformers = definedExternally): dynamic /* EmitResult? | BuildInvalidedProject? */ +} + +external interface SourceFileLike { + fun getLineAndCharacterOfPosition(pos: Number): LineAndCharacter +} + +external interface IScriptSnapshot { + fun getText(start: Number, end: Number): String + fun getLength(): Number + fun getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange? + val dispose: (() -> Unit)? +} + +external interface PreProcessedFileInfo { + var referencedFiles: Array + var typeReferenceDirectives: Array + var libReferenceDirectives: Array + var importedFiles: Array + var ambientExternalModules: Array? + get() = definedExternally + set(value) = definedExternally + var isLibFile: Boolean +} + +external interface HostCancellationToken { + fun isCancellationRequested(): Boolean +} + +external interface InstallPackageOptions { + var fileName: String /* String & `T$3` */ + var packageName: String +} + +external interface PerformanceEvent { + var kind: String /* "UpdateGraph" | "CreatePackageJsonAutoImportProvider" */ + var durationMs: Number +} + +external enum class LanguageServiceMode { + Semantic /* = 0 */, + PartialSemantic /* = 1 */, + Syntactic /* = 2 */ +} + +external interface IncompleteCompletionsCache { + fun get(): CompletionInfo? + fun set(response: CompletionInfo) + fun clear() +} + +external interface LanguageServiceHost : GetEffectiveTypeRootsHost { + fun getCompilationSettings(): CompilerOptions + val getNewLine: (() -> String)? + val getProjectVersion: (() -> String)? + fun getScriptFileNames(): Array + val getScriptKind: ((fileName: String) -> ScriptKind)? + fun getScriptVersion(fileName: String): String + fun getScriptSnapshot(fileName: String): IScriptSnapshot? + val getProjectReferences: (() -> Array?)? + val getLocalizedDiagnosticMessages: (() -> Any)? + val getCancellationToken: (() -> HostCancellationToken)? + override var getCurrentDirectory: () -> String + fun getDefaultLibFileName(options: CompilerOptions): String + val log: ((s: String) -> Unit)? + val trace: ((s: String) -> Unit)? + val error: ((s: String) -> Unit)? + val useCaseSensitiveFileNames: (() -> Boolean)? + val readDirectory: ((path: String, extensions: Array, exclude: Array, include: Array, depth: Number) -> Array)? + val readFile: ((path: String, encoding: String) -> String?)? + val realpath: ((path: String) -> String)? + val fileExists: ((path: String) -> Boolean)? + val getTypeRootsVersion: (() -> Number)? + val resolveModuleNames: ((moduleNames: Array, containingFile: String, reusedNames: Array?, redirectedReference: ResolvedProjectReference?, options: CompilerOptions) -> Array)? + val getResolvedModuleWithFailedLookupLocationsFromCache: ((modulename: String, containingFile: String) -> ResolvedModuleWithFailedLookupLocations?)? + val resolveTypeReferenceDirectives: ((typeDirectiveNames: Array, containingFile: String, redirectedReference: ResolvedProjectReference?, options: CompilerOptions) -> Array)? + val getDirectories: ((directoryName: String) -> Array)? + val getCustomTransformers: (() -> CustomTransformers?)? + val isKnownTypesPackageName: ((name: String) -> Boolean)? + val installPackage: ((options: InstallPackageOptions) -> Promise)? + val writeFile: ((fileName: String, content: String) -> Unit)? + val getParsedCommandLine: ((fileName: String) -> ParsedCommandLine?)? +} + +external enum class SemanticClassificationFormat { + Original /* = "original" */, + TwentyTwenty /* = "2020" */ +} + +external interface LanguageService { + fun cleanupSemanticCache() + fun getSyntacticDiagnostics(fileName: String): Array + fun getSemanticDiagnostics(fileName: String): Array + fun getSuggestionDiagnostics(fileName: String): Array + fun getCompilerOptionsDiagnostics(): Array + fun getSyntacticClassifications(fileName: String, span: TextSpan): Array + fun getSyntacticClassifications(fileName: String, span: TextSpan, format: SemanticClassificationFormat): dynamic /* Array | Array */ + fun getSemanticClassifications(fileName: String, span: TextSpan): Array + fun getSemanticClassifications(fileName: String, span: TextSpan, format: SemanticClassificationFormat): dynamic /* Array | Array */ + fun getEncodedSyntacticClassifications(fileName: String, span: TextSpan): Classifications + fun getEncodedSemanticClassifications(fileName: String, span: TextSpan, format: SemanticClassificationFormat = definedExternally): Classifications + fun getCompletionsAtPosition(fileName: String, position: Number, options: GetCompletionsAtPositionOptions?): CompletionInfo /* CompletionInfo & `T$12` */ + fun getCompletionEntryDetails(fileName: String, position: Number, entryName: String, formatOptions: FormatCodeOptions?, source: String?, preferences: UserPreferences?, data: CompletionEntryData?): CompletionEntryDetails? + fun getCompletionEntryDetails(fileName: String, position: Number, entryName: String, formatOptions: FormatCodeSettings?, source: String?, preferences: UserPreferences?, data: CompletionEntryData?): CompletionEntryDetails? + fun getCompletionEntrySymbol(fileName: String, position: Number, name: String, source: String?): Symbol? + fun getQuickInfoAtPosition(fileName: String, position: Number): QuickInfo? + fun getNameOrDottedNameSpan(fileName: String, startPos: Number, endPos: Number): TextSpan? + fun getBreakpointStatementAtPosition(fileName: String, position: Number): TextSpan? + fun getSignatureHelpItems(fileName: String, position: Number, options: SignatureHelpItemsOptions?): SignatureHelpItems? + fun getRenameInfo(fileName: String, position: Number, options: RenameInfoOptions = definedExternally): dynamic /* RenameInfoSuccess | RenameInfoFailure */ + fun findRenameLocations(fileName: String, position: Number, findInStrings: Boolean, findInComments: Boolean, providePrefixAndSuffixTextForRename: Boolean = definedExternally): Array? + fun getSmartSelectionRange(fileName: String, position: Number): SelectionRange + fun getDefinitionAtPosition(fileName: String, position: Number): Array? + fun getDefinitionAndBoundSpan(fileName: String, position: Number): DefinitionInfoAndBoundSpan? + fun getTypeDefinitionAtPosition(fileName: String, position: Number): Array? + fun getImplementationAtPosition(fileName: String, position: Number): Array? + fun getReferencesAtPosition(fileName: String, position: Number): Array? + fun findReferences(fileName: String, position: Number): Array? + fun getDocumentHighlights(fileName: String, position: Number, filesToSearch: Array): Array? + fun getFileReferences(fileName: String): Array + fun getOccurrencesAtPosition(fileName: String, position: Number): Array? + fun getNavigateToItems(searchValue: String, maxResultCount: Number = definedExternally, fileName: String = definedExternally, excludeDtsFiles: Boolean = definedExternally): Array + fun getNavigationBarItems(fileName: String): Array + fun getNavigationTree(fileName: String): NavigationTree + fun prepareCallHierarchy(fileName: String, position: Number): dynamic /* CallHierarchyItem? | Array? */ + fun provideCallHierarchyIncomingCalls(fileName: String, position: Number): Array + fun provideCallHierarchyOutgoingCalls(fileName: String, position: Number): Array + fun provideInlayHints(fileName: String, span: TextSpan, preferences: UserPreferences?): Array + fun getOutliningSpans(fileName: String): Array + fun getTodoComments(fileName: String, descriptors: Array): Array + fun getBraceMatchingAtPosition(fileName: String, position: Number): Array + fun getIndentationAtPosition(fileName: String, position: Number, options: EditorOptions): Number + fun getIndentationAtPosition(fileName: String, position: Number, options: EditorSettings): Number + fun getFormattingEditsForRange(fileName: String, start: Number, end: Number, options: FormatCodeOptions): Array + fun getFormattingEditsForRange(fileName: String, start: Number, end: Number, options: FormatCodeSettings): Array + fun getFormattingEditsForDocument(fileName: String, options: FormatCodeOptions): Array + fun getFormattingEditsForDocument(fileName: String, options: FormatCodeSettings): Array + fun getFormattingEditsAfterKeystroke(fileName: String, position: Number, key: String, options: FormatCodeOptions): Array + fun getFormattingEditsAfterKeystroke(fileName: String, position: Number, key: String, options: FormatCodeSettings): Array + fun getDocCommentTemplateAtPosition(fileName: String, position: Number, options: DocCommentTemplateOptions = definedExternally): TextInsertion? + fun isValidBraceCompletionAtPosition(fileName: String, position: Number, openingBrace: Number): Boolean + fun getJsxClosingTagAtPosition(fileName: String, position: Number): JsxClosingTagInfo? + fun getSpanOfEnclosingComment(fileName: String, position: Number, onlyMultiLine: Boolean): TextSpan? + val toLineColumnOffset: ((fileName: String, position: Number) -> LineAndCharacter)? + fun getCodeFixesAtPosition(fileName: String, start: Number, end: Number, errorCodes: Array, formatOptions: FormatCodeSettings, preferences: UserPreferences): Array + fun getCombinedCodeFix(scope: CombinedCodeFixScope, fixId: Any, formatOptions: FormatCodeSettings, preferences: UserPreferences): CombinedCodeActions + fun applyCodeActionCommand(action: CodeActionCommand, formatSettings: FormatCodeSettings = definedExternally): dynamic /* Promise | Promise */ + fun applyCodeActionCommand(action: CodeActionCommand): dynamic /* Promise | Promise */ + fun applyCodeActionCommand(action: Array, formatSettings: FormatCodeSettings = definedExternally): dynamic /* Promise | Promise */ + fun applyCodeActionCommand(action: Array): dynamic /* Promise | Promise */ + fun applyCodeActionCommand(fileName: String, action: CodeActionCommand): dynamic /* Promise | Promise */ + fun applyCodeActionCommand(fileName: String, action: Array): dynamic /* Promise | Promise */ + fun getApplicableRefactors(fileName: String, positionOrRange: Number, preferences: UserPreferences?, triggerReason: String /* "implicit" | "invoked" */ = definedExternally, kind: String = definedExternally): Array + fun getApplicableRefactors(fileName: String, positionOrRange: Number, preferences: UserPreferences?): Array + fun getApplicableRefactors(fileName: String, positionOrRange: Number, preferences: UserPreferences?, triggerReason: String /* "implicit" | "invoked" */ = definedExternally): Array + fun getApplicableRefactors(fileName: String, positionOrRange: TextRange, preferences: UserPreferences?, triggerReason: String /* "implicit" | "invoked" */ = definedExternally, kind: String = definedExternally): Array + fun getApplicableRefactors(fileName: String, positionOrRange: TextRange, preferences: UserPreferences?): Array + fun getApplicableRefactors(fileName: String, positionOrRange: TextRange, preferences: UserPreferences?, triggerReason: String /* "implicit" | "invoked" */ = definedExternally): Array + fun getEditsForRefactor(fileName: String, formatOptions: FormatCodeSettings, positionOrRange: Number, refactorName: String, actionName: String, preferences: UserPreferences?): RefactorEditInfo? + fun getEditsForRefactor(fileName: String, formatOptions: FormatCodeSettings, positionOrRange: TextRange, refactorName: String, actionName: String, preferences: UserPreferences?): RefactorEditInfo? + fun organizeImports(args: OrganizeImportsArgs, formatOptions: FormatCodeSettings, preferences: UserPreferences?): Array + fun getEditsForFileRename(oldFilePath: String, newFilePath: String, formatOptions: FormatCodeSettings, preferences: UserPreferences?): Array + fun getEmitOutput(fileName: String, emitOnlyDtsFiles: Boolean = definedExternally, forceDtsEmit: Boolean = definedExternally): EmitOutput + fun getProgram(): Program? + fun toggleLineComment(fileName: String, textRange: TextRange): Array + fun toggleMultilineComment(fileName: String, textRange: TextRange): Array + fun commentSelection(fileName: String, textRange: TextRange): Array + fun uncommentSelection(fileName: String, textRange: TextRange): Array + fun dispose() +} + +external interface JsxClosingTagInfo { + var newText: String +} + +external interface CombinedCodeFixScope { + var type: String /* "file" */ + var fileName: String +} + +external interface OrganizeImportsArgs : CombinedCodeFixScope { + var skipDestructiveCodeActions: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external enum class CompletionTriggerKind { + Invoked /* = 1 */, + TriggerCharacter /* = 2 */, + TriggerForIncompleteCompletions /* = 3 */ +} + +external interface GetCompletionsAtPositionOptions : UserPreferences { + var triggerCharacter: String? /* "." | """ | "'" | "`" | "/" | "@" | "<" | "#" | " " */ + get() = definedExternally + set(value) = definedExternally + var triggerKind: CompletionTriggerKind? + get() = definedExternally + set(value) = definedExternally + var includeExternalModuleExports: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeInsertTextCompletions: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface InlayHintsOptions : UserPreferences { + var includeInlayParameterNameHints: String? /* "none" | "literals" | "all" */ + get() = definedExternally + set(value) = definedExternally + var includeInlayParameterNameHintsWhenArgumentMatchesName: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeInlayFunctionParameterTypeHints: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeInlayVariableTypeHints: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeInlayPropertyDeclarationTypeHints: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeInlayFunctionLikeReturnTypeHints: Boolean? + get() = definedExternally + set(value) = definedExternally + var includeInlayEnumMemberValueHints: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface SignatureHelpItemsOptions { + var triggerReason: dynamic /* SignatureHelpInvokedReason? | SignatureHelpCharacterTypedReason? | SignatureHelpRetriggeredReason? */ + get() = definedExternally + set(value) = definedExternally +} + +external interface SignatureHelpInvokedReason { + var kind: String /* "invoked" */ + var triggerCharacter: Any? + get() = definedExternally + set(value) = definedExternally +} + +external interface SignatureHelpCharacterTypedReason { + var kind: String /* "characterTyped" */ + var triggerCharacter: String /* "," | "(" | "<" */ +} + +external interface SignatureHelpRetriggeredReason { + var kind: String /* "retrigger" */ + var triggerCharacter: String? /* "," | "(" | "<" | ")" */ + get() = definedExternally + set(value) = definedExternally +} + +external interface ApplyCodeActionCommandResult { + var successMessage: String +} + +external interface Classifications { + var spans: Array + var endOfLineState: EndOfLineState +} + +external interface ClassifiedSpan { + var textSpan: TextSpan + var classificationType: ClassificationTypeNames +} + +external interface ClassifiedSpan2020 { + var textSpan: TextSpan + var classificationType: Number +} + +external interface NavigationBarItem { + var text: String + var kind: ScriptElementKind + var kindModifiers: String + var spans: Array + var childItems: Array + var indent: Number + var bolded: Boolean + var grayed: Boolean +} + +external interface NavigationTree { + var text: String + var kind: ScriptElementKind + var kindModifiers: String + var spans: Array + var nameSpan: TextSpan? + var childItems: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface CallHierarchyItem { + var name: String + var kind: ScriptElementKind + var kindModifiers: String? + get() = definedExternally + set(value) = definedExternally + var file: String + var span: TextSpan + var selectionSpan: TextSpan + var containerName: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface CallHierarchyIncomingCall { + var from: CallHierarchyItem + var fromSpans: Array +} + +external interface CallHierarchyOutgoingCall { + var to: CallHierarchyItem + var fromSpans: Array +} + +external enum class InlayHintKind { + Type /* = "Type" */, + Parameter /* = "Parameter" */, + Enum /* = "Enum" */ +} + +external interface InlayHint { + var text: String + var position: Number + var kind: InlayHintKind + var whitespaceBefore: Boolean? + get() = definedExternally + set(value) = definedExternally + var whitespaceAfter: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface TodoCommentDescriptor { + var text: String + var priority: Number +} + +external interface TodoComment { + var descriptor: TodoCommentDescriptor + var message: String + var position: Number +} + +external interface TextChange { + var span: TextSpan + var newText: String +} + +external interface FileTextChanges { + var fileName: String + var textChanges: Array + var isNewFile: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface CodeAction { + var description: String + var changes: Array + var commands: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface CodeFixAction : CodeAction { + var fixName: String + var fixId: Any? + get() = definedExternally + set(value) = definedExternally + var fixAllDescription: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface CombinedCodeActions { + var changes: Array + var commands: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface InstallPackageAction + +external interface ApplicableRefactorInfo { + var name: String + var description: String + var inlineable: Boolean? + get() = definedExternally + set(value) = definedExternally + var actions: Array +} + +external interface RefactorActionInfo { + var name: String + var description: String + var notApplicableReason: String? + get() = definedExternally + set(value) = definedExternally + var kind: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface RefactorEditInfo { + var edits: Array + var renameFilename: String? + get() = definedExternally + set(value) = definedExternally + var renameLocation: Number? + get() = definedExternally + set(value) = definedExternally + var commands: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface TextInsertion { + var newText: String + var caretOffset: Number +} + +external interface DocumentSpan { + var textSpan: TextSpan + var fileName: String + var originalTextSpan: TextSpan? + get() = definedExternally + set(value) = definedExternally + var originalFileName: String? + get() = definedExternally + set(value) = definedExternally + var contextSpan: TextSpan? + get() = definedExternally + set(value) = definedExternally + var originalContextSpan: TextSpan? + get() = definedExternally + set(value) = definedExternally +} + +external interface RenameLocation : DocumentSpan { + var prefixText: String? + get() = definedExternally + set(value) = definedExternally + var suffixText: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface ReferenceEntry : DocumentSpan { + var isWriteAccess: Boolean + var isDefinition: Boolean + var isInString: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface ImplementationLocation : DocumentSpan { + var kind: ScriptElementKind + var displayParts: Array +} + +external enum class HighlightSpanKind { + none /* = "none" */, + definition /* = "definition" */, + reference /* = "reference" */, + writtenReference /* = "writtenReference" */ +} + +external interface HighlightSpan { + var fileName: String? + get() = definedExternally + set(value) = definedExternally + var isInString: Boolean? + get() = definedExternally + set(value) = definedExternally + var textSpan: TextSpan + var contextSpan: TextSpan? + get() = definedExternally + set(value) = definedExternally + var kind: HighlightSpanKind +} + +external interface NavigateToItem { + var name: String + var kind: ScriptElementKind + var kindModifiers: String + var matchKind: String /* "exact" | "prefix" | "substring" | "camelCase" */ + var isCaseSensitive: Boolean + var fileName: String + var textSpan: TextSpan + var containerName: String + var containerKind: ScriptElementKind +} + +external enum class IndentStyle { + None /* = 0 */, + Block /* = 1 */, + Smart /* = 2 */ +} + +external enum class SemicolonPreference { + Ignore /* = "ignore" */, + Insert /* = "insert" */, + Remove /* = "remove" */ +} + +external interface EditorOptions { + var BaseIndentSize: Number? + get() = definedExternally + set(value) = definedExternally + var IndentSize: Number + var TabSize: Number + var NewLineCharacter: String + var ConvertTabsToSpaces: Boolean + var IndentStyle: IndentStyle +} + +external interface EditorSettings { + var baseIndentSize: Number? + get() = definedExternally + set(value) = definedExternally + var indentSize: Number? + get() = definedExternally + set(value) = definedExternally + var tabSize: Number? + get() = definedExternally + set(value) = definedExternally + var newLineCharacter: String? + get() = definedExternally + set(value) = definedExternally + var convertTabsToSpaces: Boolean? + get() = definedExternally + set(value) = definedExternally + var indentStyle: IndentStyle? + get() = definedExternally + set(value) = definedExternally + var trimTrailingWhitespace: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface FormatCodeOptions : EditorOptions { + var InsertSpaceAfterCommaDelimiter: Boolean + var InsertSpaceAfterSemicolonInForStatements: Boolean + var InsertSpaceBeforeAndAfterBinaryOperators: Boolean + var InsertSpaceAfterConstructor: Boolean? + get() = definedExternally + set(value) = definedExternally + var InsertSpaceAfterKeywordsInControlFlowStatements: Boolean + var InsertSpaceAfterFunctionKeywordForAnonymousFunctions: Boolean + var InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: Boolean + var InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: Boolean + var InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: Boolean? + get() = definedExternally + set(value) = definedExternally + var InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: Boolean + var InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: Boolean? + get() = definedExternally + set(value) = definedExternally + var InsertSpaceAfterTypeAssertion: Boolean? + get() = definedExternally + set(value) = definedExternally + var InsertSpaceBeforeFunctionParenthesis: Boolean? + get() = definedExternally + set(value) = definedExternally + var PlaceOpenBraceOnNewLineForFunctions: Boolean + var PlaceOpenBraceOnNewLineForControlBlocks: Boolean + var insertSpaceBeforeTypeAnnotation: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface FormatCodeSettings : EditorSettings { + var insertSpaceAfterCommaDelimiter: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterSemicolonInForStatements: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceBeforeAndAfterBinaryOperators: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterConstructor: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterKeywordsInControlFlowStatements: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterFunctionKeywordForAnonymousFunctions: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterOpeningAndBeforeClosingEmptyBraces: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceAfterTypeAssertion: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceBeforeFunctionParenthesis: Boolean? + get() = definedExternally + set(value) = definedExternally + var placeOpenBraceOnNewLineForFunctions: Boolean? + get() = definedExternally + set(value) = definedExternally + var placeOpenBraceOnNewLineForControlBlocks: Boolean? + get() = definedExternally + set(value) = definedExternally + var insertSpaceBeforeTypeAnnotation: Boolean? + get() = definedExternally + set(value) = definedExternally + var indentMultiLineObjectLiteralBeginningOnBlankLine: Boolean? + get() = definedExternally + set(value) = definedExternally + var semicolons: SemicolonPreference? + get() = definedExternally + set(value) = definedExternally +} + +external fun getDefaultFormatCodeSettings(newLineCharacter: String = definedExternally): FormatCodeSettings + +external interface DefinitionInfo : DocumentSpan { + var kind: ScriptElementKind + var name: String + var containerKind: ScriptElementKind + var containerName: String + var unverified: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface DefinitionInfoAndBoundSpan { + var definitions: Array? + get() = definedExternally + set(value) = definedExternally + var textSpan: TextSpan +} + +external interface ReferencedSymbolDefinitionInfo : DefinitionInfo { + var displayParts: Array +} + +external interface ReferencedSymbol { + var definition: ReferencedSymbolDefinitionInfo + var references: Array +} + +external enum class SymbolDisplayPartKind { + aliasName /* = 0 */, + className /* = 1 */, + enumName /* = 2 */, + fieldName /* = 3 */, + interfaceName /* = 4 */, + keyword /* = 5 */, + lineBreak /* = 6 */, + numericLiteral /* = 7 */, + stringLiteral /* = 8 */, + localName /* = 9 */, + methodName /* = 10 */, + moduleName /* = 11 */, + operator /* = 12 */, + parameterName /* = 13 */, + propertyName /* = 14 */, + punctuation /* = 15 */, + space /* = 16 */, + text /* = 17 */, + typeParameterName /* = 18 */, + enumMemberName /* = 19 */, + functionName /* = 20 */, + regularExpressionLiteral /* = 21 */, + link /* = 22 */, + linkName /* = 23 */, + linkText /* = 24 */ +} + +external interface SymbolDisplayPart { + var text: String + var kind: String +} + +external interface JSDocLinkDisplayPart : SymbolDisplayPart { + var target: DocumentSpan +} + +external interface JSDocTagInfo { + var name: String + var text: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface QuickInfo { + var kind: ScriptElementKind + var kindModifiers: String + var textSpan: TextSpan + var displayParts: Array? + get() = definedExternally + set(value) = definedExternally + var documentation: Array? + get() = definedExternally + set(value) = definedExternally + var tags: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface RenameInfoSuccess { + var canRename: Boolean + var fileToRename: String? + get() = definedExternally + set(value) = definedExternally + var displayName: String + var fullDisplayName: String + var kind: ScriptElementKind + var kindModifiers: String + var triggerSpan: TextSpan +} + +external interface RenameInfoFailure { + var canRename: Boolean + var localizedErrorMessage: String +} + +external interface RenameInfoOptions { + var allowRenameOfImportPath: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface DocCommentTemplateOptions { + var generateReturnInDocTemplate: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface SignatureHelpParameter { + var name: String + var documentation: Array + var displayParts: Array + var isOptional: Boolean + var isRest: Boolean? + get() = definedExternally + set(value) = definedExternally +} + +external interface SelectionRange { + var textSpan: TextSpan + var parent: SelectionRange? + get() = definedExternally + set(value) = definedExternally +} + +external interface SignatureHelpItem { + var isVariadic: Boolean + var prefixDisplayParts: Array + var suffixDisplayParts: Array + var separatorDisplayParts: Array + var parameters: Array + var documentation: Array + var tags: Array +} + +external interface SignatureHelpItems { + var items: Array + var applicableSpan: TextSpan + var selectedItemIndex: Number + var argumentIndex: Number + var argumentCount: Number +} + +external interface CompletionInfo { + var isGlobalCompletion: Boolean + var isMemberCompletion: Boolean + var optionalReplacementSpan: TextSpan? + get() = definedExternally + set(value) = definedExternally + var isNewIdentifierLocation: Boolean + var isIncomplete: Boolean? + get() = definedExternally + set(value) = definedExternally + var entries: Array +} + +external interface CompletionEntryData { + var fileName: String? + get() = definedExternally + set(value) = definedExternally + var ambientModuleName: String? + get() = definedExternally + set(value) = definedExternally + var isPackageJsonImport: Boolean? + get() = definedExternally + set(value) = definedExternally + var exportName: String + var moduleSpecifier: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface CompletionEntry { + var name: String + var kind: ScriptElementKind + var kindModifiers: String? + get() = definedExternally + set(value) = definedExternally + var sortText: String + var insertText: String? + get() = definedExternally + set(value) = definedExternally + var isSnippet: Boolean? + get() = definedExternally + set(value) = definedExternally + var replacementSpan: TextSpan? + get() = definedExternally + set(value) = definedExternally + var hasAction: Boolean? + get() = definedExternally + set(value) = definedExternally + var source: String? + get() = definedExternally + set(value) = definedExternally + var sourceDisplay: Array? + get() = definedExternally + set(value) = definedExternally + var isRecommended: Boolean? + get() = definedExternally + set(value) = definedExternally + var isFromUncheckedFile: Boolean? + get() = definedExternally + set(value) = definedExternally + var isPackageJsonImport: Boolean? + get() = definedExternally + set(value) = definedExternally + var isImportStatementCompletion: Boolean? + get() = definedExternally + set(value) = definedExternally + var data: CompletionEntryData? + get() = definedExternally + set(value) = definedExternally +} + +external interface CompletionEntryDetails { + var name: String + var kind: ScriptElementKind + var kindModifiers: String + var displayParts: Array + var documentation: Array? + get() = definedExternally + set(value) = definedExternally + var tags: Array? + get() = definedExternally + set(value) = definedExternally + var codeActions: Array? + get() = definedExternally + set(value) = definedExternally + var source: Array? + get() = definedExternally + set(value) = definedExternally + var sourceDisplay: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface OutliningSpan { + var textSpan: TextSpan + var hintSpan: TextSpan + var bannerText: String + var autoCollapse: Boolean + var kind: OutliningSpanKind +} + +external enum class OutliningSpanKind { + Comment /* = "comment" */, + Region /* = "region" */, + Code /* = "code" */, + Imports /* = "imports" */ +} + +external enum class OutputFileType { + JavaScript /* = 0 */, + SourceMap /* = 1 */, + Declaration /* = 2 */ +} + +external enum class EndOfLineState { + None /* = 0 */, + InMultiLineCommentTrivia /* = 1 */, + InSingleQuoteStringLiteral /* = 2 */, + InDoubleQuoteStringLiteral /* = 3 */, + InTemplateHeadOrNoSubstitutionTemplate /* = 4 */, + InTemplateMiddleOrTail /* = 5 */, + InTemplateSubstitutionPosition /* = 6 */ +} + +external enum class TokenClass { + Punctuation /* = 0 */, + Keyword /* = 1 */, + Operator /* = 2 */, + Comment /* = 3 */, + Whitespace /* = 4 */, + Identifier /* = 5 */, + NumberLiteral /* = 6 */, + BigIntLiteral /* = 7 */, + StringLiteral /* = 8 */, + RegExpLiteral /* = 9 */ +} + +external interface ClassificationResult { + var finalLexState: EndOfLineState + var entries: Array +} + +external interface ClassificationInfo { + var length: Number + var classification: TokenClass +} + +external interface Classifier { + fun getClassificationsForLine(text: String, lexState: EndOfLineState, syntacticClassifierAbsent: Boolean): ClassificationResult + fun getEncodedLexicalClassifications(text: String, endOfLineState: EndOfLineState, syntacticClassifierAbsent: Boolean): Classifications +} + +external enum class ScriptElementKind { + unknown /* = "" */, + warning /* = "warning" */, + keyword /* = "keyword" */, + scriptElement /* = "script" */, + moduleElement /* = "module" */, + classElement /* = "class" */, + localClassElement /* = "local class" */, + interfaceElement /* = "interface" */, + typeElement /* = "type" */, + enumElement /* = "enum" */, + enumMemberElement /* = "enum member" */, + variableElement /* = "var" */, + localVariableElement /* = "local var" */, + functionElement /* = "function" */, + localFunctionElement /* = "local function" */, + memberFunctionElement /* = "method" */, + memberGetAccessorElement /* = "getter" */, + memberSetAccessorElement /* = "setter" */, + memberVariableElement /* = "property" */, + constructorImplementationElement /* = "constructor" */, + callSignatureElement /* = "call" */, + indexSignatureElement /* = "index" */, + constructSignatureElement /* = "construct" */, + parameterElement /* = "parameter" */, + typeParameterElement /* = "type parameter" */, + primitiveType /* = "primitive type" */, + label /* = "label" */, + alias /* = "alias" */, + constElement /* = "const" */, + letElement /* = "let" */, + directory /* = "directory" */, + externalModuleName /* = "external module name" */, + jsxAttribute /* = "JSX attribute" */, + string /* = "string" */, + link /* = "link" */, + linkName /* = "link name" */, + linkText /* = "link text" */ +} + +external enum class ScriptElementKindModifier { + none /* = "" */, + publicMemberModifier /* = "public" */, + privateMemberModifier /* = "private" */, + protectedMemberModifier /* = "protected" */, + exportedModifier /* = "export" */, + ambientModifier /* = "declare" */, + staticModifier /* = "static" */, + abstractModifier /* = "abstract" */, + optionalModifier /* = "optional" */, + deprecatedModifier /* = "deprecated" */, + dtsModifier /* = ".d.ts" */, + tsModifier /* = ".ts" */, + tsxModifier /* = ".tsx" */, + jsModifier /* = ".js" */, + jsxModifier /* = ".jsx" */, + jsonModifier /* = ".json" */ +} + +external enum class ClassificationTypeNames { + comment /* = "comment" */, + identifier /* = "identifier" */, + keyword /* = "keyword" */, + numericLiteral /* = "number" */, + bigintLiteral /* = "bigint" */, + operator /* = "operator" */, + stringLiteral /* = "string" */, + whiteSpace /* = "whitespace" */, + text /* = "text" */, + punctuation /* = "punctuation" */, + className /* = "class name" */, + enumName /* = "enum name" */, + interfaceName /* = "interface name" */, + moduleName /* = "module name" */, + typeParameterName /* = "type parameter name" */, + typeAliasName /* = "type alias name" */, + parameterName /* = "parameter name" */, + docCommentTagName /* = "doc comment tag name" */, + jsxOpenTagName /* = "jsx open tag name" */, + jsxCloseTagName /* = "jsx close tag name" */, + jsxSelfClosingTagName /* = "jsx self closing tag name" */, + jsxAttribute /* = "jsx attribute" */, + jsxText /* = "jsx text" */, + jsxAttributeStringLiteralValue /* = "jsx attribute string literal value" */ +} + +external enum class ClassificationType { + comment /* = 1 */, + identifier /* = 2 */, + keyword /* = 3 */, + numericLiteral /* = 4 */, + operator /* = 5 */, + stringLiteral /* = 6 */, + regularExpressionLiteral /* = 7 */, + whiteSpace /* = 8 */, + text /* = 9 */, + punctuation /* = 10 */, + className /* = 11 */, + enumName /* = 12 */, + interfaceName /* = 13 */, + moduleName /* = 14 */, + typeParameterName /* = 15 */, + typeAliasName /* = 16 */, + parameterName /* = 17 */, + docCommentTagName /* = 18 */, + jsxOpenTagName /* = 19 */, + jsxCloseTagName /* = 20 */, + jsxSelfClosingTagName /* = 21 */, + jsxAttribute /* = 22 */, + jsxText /* = 23 */, + jsxAttributeStringLiteralValue /* = 24 */, + bigintLiteral /* = 25 */ +} + +external interface InlayHintsContext { + var file: SourceFile + var program: Program + var cancellationToken: CancellationToken + var host: LanguageServiceHost + var span: TextSpan + var preferences: InlayHintsOptions +} + +external fun createClassifier(): Classifier + +external interface DocumentHighlights { + var fileName: String + var highlightSpans: Array +} + +external interface DocumentRegistry { + fun acquireDocument(fileName: String, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: String, scriptKind: ScriptKind = definedExternally): SourceFile + fun acquireDocumentWithKey(fileName: String, path: String /* String & `T$3` */, compilationSettings: CompilerOptions, key: String /* String & `T$29` */, scriptSnapshot: IScriptSnapshot, version: String, scriptKind: ScriptKind = definedExternally): SourceFile + fun updateDocument(fileName: String, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: String, scriptKind: ScriptKind = definedExternally): SourceFile + fun updateDocumentWithKey(fileName: String, path: String /* String & `T$3` */, compilationSettings: CompilerOptions, key: String /* String & `T$29` */, scriptSnapshot: IScriptSnapshot, version: String, scriptKind: ScriptKind = definedExternally): SourceFile + fun getKeyForCompilationSettings(settings: CompilerOptions): String /* String & `T$29` */ + fun releaseDocument(fileName: String, compilationSettings: CompilerOptions) + fun releaseDocument(fileName: String, compilationSettings: CompilerOptions, scriptKind: ScriptKind) + fun releaseDocumentWithKey(path: String /* String & `T$3` */, key: String /* String & `T$29` */) + fun releaseDocumentWithKey(path: String /* String & `T$3` */, key: String /* String & `T$29` */, scriptKind: ScriptKind) + fun reportStats(): String +} + +external interface `T$29` { + var __bucketKey: Any +} + +external fun createDocumentRegistry(useCaseSensitiveFileNames: Boolean = definedExternally, currentDirectory: String = definedExternally): DocumentRegistry + +external fun preProcessFile(sourceText: String, readImportFiles: Boolean = definedExternally, detectJavaScriptImports: Boolean = definedExternally): PreProcessedFileInfo + +external interface TranspileOptions { + var compilerOptions: CompilerOptions? + get() = definedExternally + set(value) = definedExternally + var fileName: String? + get() = definedExternally + set(value) = definedExternally + var reportDiagnostics: Boolean? + get() = definedExternally + set(value) = definedExternally + var moduleName: String? + get() = definedExternally + set(value) = definedExternally + var renamedDependencies: MapLike? + get() = definedExternally + set(value) = definedExternally + var transformers: CustomTransformers? + get() = definedExternally + set(value) = definedExternally +} + +external interface TranspileOutput { + var outputText: String + var diagnostics: Array? + get() = definedExternally + set(value) = definedExternally + var sourceMapText: String? + get() = definedExternally + set(value) = definedExternally +} + +external fun transpileModule(input: String, transpileOptions: TranspileOptions): TranspileOutput + +external fun transpile(input: String, compilerOptions: CompilerOptions = definedExternally, fileName: String = definedExternally, diagnostics: Array = definedExternally, moduleName: String = definedExternally): String + +external var servicesVersion: Any + +external fun toEditorSettings(options: EditorOptions): EditorSettings + +external fun toEditorSettings(options: EditorSettings): EditorSettings + +external fun displayPartsToString(displayParts: Array?): String + +external fun getDefaultCompilerOptions(): CompilerOptions + +external fun getSupportedCodeFixes(): Array + +external fun createLanguageServiceSourceFile(fileName: String, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: String, setNodeParents: Boolean, scriptKind: ScriptKind = definedExternally): SourceFile + +external fun updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: String, textChangeRange: TextChangeRange?, aggressiveChecks: Boolean = definedExternally): SourceFile + +external fun createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry = definedExternally, syntaxOnlyOrLanguageServiceMode: Boolean = definedExternally): LanguageService + +external fun createLanguageService(host: LanguageServiceHost): LanguageService + +external fun createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry = definedExternally): LanguageService + +external fun createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry = definedExternally, syntaxOnlyOrLanguageServiceMode: LanguageServiceMode = definedExternally): LanguageService + +external fun getDefaultLibFilePath(options: CompilerOptions): String + +external fun transform(source: T, transformers: Array>, compilerOptions: CompilerOptions = definedExternally): TransformationResult + +external fun transform(source: T, transformers: Array>): TransformationResult + +external fun transform(source: Array, transformers: Array>, compilerOptions: CompilerOptions = definedExternally): TransformationResult + +external fun transform(source: Array, transformers: Array>): TransformationResult + +external var createNodeArray: (elements: Array?, hasTrailingComma: Boolean?) -> NodeArray + +external var createNumericLiteral: (value: dynamic /* String | Number */, numericLiteralFlags: TokenFlags?) -> NumericLiteral + +external var createBigIntLiteral: (value: dynamic /* String | PseudoBigInt */) -> BigIntLiteral + +external object createStringLiteral { + @nativeInvoke + operator fun invoke(text: String, isSingleQuote: Boolean? = definedExternally): StringLiteral + @nativeInvoke + operator fun invoke(text: String, isSingleQuote: Boolean? = definedExternally, hasExtendedUnicodeEscape: Boolean? = definedExternally): StringLiteral +} + +external var createStringLiteralFromNode: (sourceNode: dynamic /* Identifier | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral */, isSingleQuote: Boolean?) -> StringLiteral + +external var createRegularExpressionLiteral: (text: String) -> RegularExpressionLiteral + +external var createLoopVariable: (reservedInNestedScopes: Boolean?) -> Identifier + +external var createUniqueName: (text: String, flags: GeneratedIdentifierFlags?) -> Identifier + +external var createPrivateIdentifier: (text: String) -> PrivateIdentifier + +external var createSuper: () -> SuperExpression + +external var createThis: () -> ThisExpression + +external var createNull: () -> NullLiteral + +external var createTrue: () -> TrueLiteral + +external var createFalse: () -> FalseLiteral + +external var createModifier: (kind: T) -> ModifierToken + +external var createModifiersFromModifierFlags: (flags: ModifierFlags) -> Array + +external var createQualifiedName: (left: dynamic /* Identifier | QualifiedName */, right: dynamic /* String | Identifier */) -> QualifiedName + +external var updateQualifiedName: (node: QualifiedName, left: dynamic /* Identifier | QualifiedName */, right: Identifier) -> QualifiedName + +external var createComputedPropertyName: (expression: Expression) -> ComputedPropertyName + +external var updateComputedPropertyName: (node: ComputedPropertyName, expression: Expression) -> ComputedPropertyName + +external var createTypeParameterDeclaration: (name: dynamic /* String | Identifier */, constraint: TypeNode?, defaultType: TypeNode?) -> TypeParameterDeclaration + +external var updateTypeParameterDeclaration: (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode?, defaultType: TypeNode?) -> TypeParameterDeclaration + +external var createParameter: (decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: dynamic /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?) -> ParameterDeclaration + +external var updateParameter: (node: ParameterDeclaration, decorators: Array?, modifiers: Array?, dotDotDotToken: DotDotDotToken?, name: dynamic /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?) -> ParameterDeclaration + +external var createDecorator: (expression: Expression) -> Decorator + +external var updateDecorator: (node: Decorator, expression: Expression) -> Decorator + +external var createProperty: (decorators: Array?, modifiers: Array?, name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, questionOrExclamationToken: dynamic /* QuestionToken? | ExclamationToken? */, type: TypeNode?, initializer: Expression?) -> PropertyDeclaration + +external var updateProperty: (node: PropertyDeclaration, decorators: Array?, modifiers: Array?, name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, questionOrExclamationToken: dynamic /* QuestionToken? | ExclamationToken? */, type: TypeNode?, initializer: Expression?) -> PropertyDeclaration + +external var createMethod: (decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?) -> MethodDeclaration + +external var updateMethod: (node: MethodDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, questionToken: QuestionToken?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?) -> MethodDeclaration + +external var createConstructor: (decorators: Array?, modifiers: Array?, parameters: Array, body: Block?) -> ConstructorDeclaration + +external var updateConstructor: (node: ConstructorDeclaration, decorators: Array?, modifiers: Array?, parameters: Array, body: Block?) -> ConstructorDeclaration + +external var createGetAccessor: (decorators: Array?, modifiers: Array?, name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, parameters: Array, type: TypeNode?, body: Block?) -> GetAccessorDeclaration + +external var updateGetAccessor: (node: GetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, parameters: Array, type: TypeNode?, body: Block?) -> GetAccessorDeclaration + +external var createSetAccessor: (decorators: Array?, modifiers: Array?, name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, parameters: Array, body: Block?) -> SetAccessorDeclaration + +external var updateSetAccessor: (node: SetAccessorDeclaration, decorators: Array?, modifiers: Array?, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, parameters: Array, body: Block?) -> SetAccessorDeclaration + +external var createCallSignature: (typeParameters: Array?, parameters: Array, type: TypeNode?) -> CallSignatureDeclaration + +external var updateCallSignature: (node: CallSignatureDeclaration, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?) -> CallSignatureDeclaration + +external var createConstructSignature: (typeParameters: Array?, parameters: Array, type: TypeNode?) -> ConstructSignatureDeclaration + +external var updateConstructSignature: (node: ConstructSignatureDeclaration, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?) -> ConstructSignatureDeclaration + +external var updateIndexSignature: (node: IndexSignatureDeclaration, decorators: Array?, modifiers: Array?, parameters: Array, type: TypeNode) -> IndexSignatureDeclaration + +external var createKeywordTypeNode: (kind: TKind) -> KeywordTypeNode + +external var createTypePredicateNodeWithModifier: (assertsModifier: AssertsKeyword?, parameterName: dynamic /* String | Identifier | ThisTypeNode */, type: TypeNode?) -> TypePredicateNode + +external var updateTypePredicateNodeWithModifier: (node: TypePredicateNode, assertsModifier: AssertsKeyword?, parameterName: dynamic /* Identifier | ThisTypeNode */, type: TypeNode?) -> TypePredicateNode + +external var createTypeReferenceNode: (typeName: dynamic /* String | Identifier | QualifiedName */, typeArguments: Array?) -> TypeReferenceNode + +external var updateTypeReferenceNode: (node: TypeReferenceNode, typeName: dynamic /* Identifier | QualifiedName */, typeArguments: NodeArray?) -> TypeReferenceNode + +external var createFunctionTypeNode: (typeParameters: Array?, parameters: Array, type: TypeNode) -> FunctionTypeNode + +external var updateFunctionTypeNode: (node: FunctionTypeNode, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode) -> FunctionTypeNode + +external var createConstructorTypeNode: (typeParameters: Array?, parameters: Array, type: TypeNode) -> ConstructorTypeNode + +external var updateConstructorTypeNode: (node: ConstructorTypeNode, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode) -> ConstructorTypeNode + +external var createTypeQueryNode: (exprName: dynamic /* Identifier | QualifiedName */) -> TypeQueryNode + +external var updateTypeQueryNode: (node: TypeQueryNode, exprName: dynamic /* Identifier | QualifiedName */) -> TypeQueryNode + +external var createTypeLiteralNode: (members: Array?) -> TypeLiteralNode + +external var updateTypeLiteralNode: (node: TypeLiteralNode, members: NodeArray) -> TypeLiteralNode + +external var createArrayTypeNode: (elementType: TypeNode) -> ArrayTypeNode + +external var updateArrayTypeNode: (node: ArrayTypeNode, elementType: TypeNode) -> ArrayTypeNode + +external var createTupleTypeNode: (elements: Array) -> TupleTypeNode + +external var updateTupleTypeNode: (node: TupleTypeNode, elements: Array) -> TupleTypeNode + +external var createOptionalTypeNode: (type: TypeNode) -> OptionalTypeNode + +external var updateOptionalTypeNode: (node: OptionalTypeNode, type: TypeNode) -> OptionalTypeNode + +external var createRestTypeNode: (type: TypeNode) -> RestTypeNode + +external var updateRestTypeNode: (node: RestTypeNode, type: TypeNode) -> RestTypeNode + +external var createUnionTypeNode: (types: Array) -> UnionTypeNode + +external var updateUnionTypeNode: (node: UnionTypeNode, types: NodeArray) -> UnionTypeNode + +external var createIntersectionTypeNode: (types: Array) -> IntersectionTypeNode + +external var updateIntersectionTypeNode: (node: IntersectionTypeNode, types: NodeArray) -> IntersectionTypeNode + +external var createConditionalTypeNode: (checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) -> ConditionalTypeNode + +external var updateConditionalTypeNode: (node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode) -> ConditionalTypeNode + +external var createInferTypeNode: (typeParameter: TypeParameterDeclaration) -> InferTypeNode + +external var updateInferTypeNode: (node: InferTypeNode, typeParameter: TypeParameterDeclaration) -> InferTypeNode + +external var createImportTypeNode: (argument: TypeNode, qualifier: dynamic /* Identifier? | QualifiedName? */, typeArguments: Array?, isTypeOf: Boolean?) -> ImportTypeNode + +external var updateImportTypeNode: (node: ImportTypeNode, argument: TypeNode, qualifier: dynamic /* Identifier? | QualifiedName? */, typeArguments: Array?, isTypeOf: Boolean?) -> ImportTypeNode + +external var createParenthesizedType: (type: TypeNode) -> ParenthesizedTypeNode + +external var updateParenthesizedType: (node: ParenthesizedTypeNode, type: TypeNode) -> ParenthesizedTypeNode + +external var createThisTypeNode: () -> ThisTypeNode + +external var updateTypeOperatorNode: (node: TypeOperatorNode, type: TypeNode) -> TypeOperatorNode + +external var createIndexedAccessTypeNode: (objectType: TypeNode, indexType: TypeNode) -> IndexedAccessTypeNode + +external var updateIndexedAccessTypeNode: (node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode) -> IndexedAccessTypeNode + +external var createMappedTypeNode: (readonlyToken: dynamic /* ReadonlyKeyword? | PlusToken? | MinusToken? */, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: dynamic /* QuestionToken? | PlusToken? | MinusToken? */, type: TypeNode?) -> MappedTypeNode + +external var updateMappedTypeNode: (node: MappedTypeNode, readonlyToken: dynamic /* ReadonlyKeyword? | PlusToken? | MinusToken? */, typeParameter: TypeParameterDeclaration, nameType: TypeNode?, questionToken: dynamic /* QuestionToken? | PlusToken? | MinusToken? */, type: TypeNode?) -> MappedTypeNode + +external var createLiteralTypeNode: (literal: dynamic /* LiteralExpression | TrueLiteral | FalseLiteral | PrefixUnaryExpression | NullLiteral */) -> LiteralTypeNode + +external var updateLiteralTypeNode: (node: LiteralTypeNode, literal: dynamic /* LiteralExpression | TrueLiteral | FalseLiteral | PrefixUnaryExpression | NullLiteral */) -> LiteralTypeNode + +external var createObjectBindingPattern: (elements: Array) -> ObjectBindingPattern + +external var updateObjectBindingPattern: (node: ObjectBindingPattern, elements: Array) -> ObjectBindingPattern + +external var createArrayBindingPattern: (elements: Array) -> ArrayBindingPattern + +external var updateArrayBindingPattern: (node: ArrayBindingPattern, elements: Array) -> ArrayBindingPattern + +external var createBindingElement: (dotDotDotToken: DotDotDotToken?, propertyName: dynamic /* String? | Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */, name: dynamic /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression?) -> BindingElement + +external var updateBindingElement: (node: BindingElement, dotDotDotToken: DotDotDotToken?, propertyName: dynamic /* Identifier? | StringLiteral? | NumericLiteral? | ComputedPropertyName? | PrivateIdentifier? */, name: dynamic /* Identifier | ObjectBindingPattern | ArrayBindingPattern */, initializer: Expression?) -> BindingElement + +external var createArrayLiteral: (elements: Array?, multiLine: Boolean?) -> ArrayLiteralExpression + +external var updateArrayLiteral: (node: ArrayLiteralExpression, elements: Array) -> ArrayLiteralExpression + +external var createObjectLiteral: (properties: Array?, multiLine: Boolean?) -> ObjectLiteralExpression + +external var updateObjectLiteral: (node: ObjectLiteralExpression, properties: Array) -> ObjectLiteralExpression + +external var createPropertyAccess: (expression: Expression, name: dynamic /* String | Identifier | PrivateIdentifier */) -> PropertyAccessExpression + +external var updatePropertyAccess: (node: PropertyAccessExpression, expression: Expression, name: dynamic /* Identifier | PrivateIdentifier */) -> PropertyAccessExpression + +external var createPropertyAccessChain: (expression: Expression, questionDotToken: QuestionDotToken?, name: dynamic /* String | Identifier | PrivateIdentifier */) -> PropertyAccessChain + +external var updatePropertyAccessChain: (node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken?, name: dynamic /* Identifier | PrivateIdentifier */) -> PropertyAccessChain + +external var createElementAccess: (expression: Expression, index: dynamic /* Number | Expression */) -> ElementAccessExpression + +external var updateElementAccess: (node: ElementAccessExpression, expression: Expression, argumentExpression: Expression) -> ElementAccessExpression + +external var createElementAccessChain: (expression: Expression, questionDotToken: QuestionDotToken?, index: dynamic /* Number | Expression */) -> ElementAccessChain + +external var updateElementAccessChain: (node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken?, argumentExpression: Expression) -> ElementAccessChain + +external var createCall: (expression: Expression, typeArguments: Array?, argumentsArray: Array?) -> CallExpression + +external var updateCall: (node: CallExpression, expression: Expression, typeArguments: Array?, argumentsArray: Array) -> CallExpression + +external var createCallChain: (expression: Expression, questionDotToken: QuestionDotToken?, typeArguments: Array?, argumentsArray: Array?) -> CallChain + +external var updateCallChain: (node: CallChain, expression: Expression, questionDotToken: QuestionDotToken?, typeArguments: Array?, argumentsArray: Array) -> CallChain + +external var createNew: (expression: Expression, typeArguments: Array?, argumentsArray: Array?) -> NewExpression + +external var updateNew: (node: NewExpression, expression: Expression, typeArguments: Array?, argumentsArray: Array?) -> NewExpression + +external var createTypeAssertion: (type: TypeNode, expression: Expression) -> TypeAssertion + +external var updateTypeAssertion: (node: TypeAssertion, type: TypeNode, expression: Expression) -> TypeAssertion + +external var createParen: (expression: Expression) -> ParenthesizedExpression + +external var updateParen: (node: ParenthesizedExpression, expression: Expression) -> ParenthesizedExpression + +external var createFunctionExpression: (modifiers: Array?, asteriskToken: AsteriskToken?, name: dynamic /* String? | Identifier? */, typeParameters: Array?, parameters: Array?, type: TypeNode?, body: Block) -> FunctionExpression + +external var updateFunctionExpression: (node: FunctionExpression, modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block) -> FunctionExpression + +external var createDelete: (expression: Expression) -> DeleteExpression + +external var updateDelete: (node: DeleteExpression, expression: Expression) -> DeleteExpression + +external var createTypeOf: (expression: Expression) -> TypeOfExpression + +external var updateTypeOf: (node: TypeOfExpression, expression: Expression) -> TypeOfExpression + +external var createVoid: (expression: Expression) -> VoidExpression + +external var updateVoid: (node: VoidExpression, expression: Expression) -> VoidExpression + +external var createAwait: (expression: Expression) -> AwaitExpression + +external var updateAwait: (node: AwaitExpression, expression: Expression) -> AwaitExpression + +external var createPrefix: (operator: dynamic /* SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken */, operand: Expression) -> PrefixUnaryExpression + +external var updatePrefix: (node: PrefixUnaryExpression, operand: Expression) -> PrefixUnaryExpression + +external var createPostfix: (operand: Expression, operator: dynamic /* SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken */) -> PostfixUnaryExpression + +external var updatePostfix: (node: PostfixUnaryExpression, operand: Expression) -> PostfixUnaryExpression + +external var createBinary: (left: Expression, operator: dynamic /* SyntaxKind.QuestionQuestionToken | ExponentiationOperator | SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword | SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.QuestionQuestionEqualsToken | SyntaxKind.CommaToken | BinaryOperatorToken */, right: Expression) -> BinaryExpression + +external var updateConditional: (node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression) -> ConditionalExpression + +external var createTemplateExpression: (head: TemplateHead, templateSpans: Array) -> TemplateExpression + +external var updateTemplateExpression: (node: TemplateExpression, head: TemplateHead, templateSpans: Array) -> TemplateExpression + +external object createTemplateHead { + @nativeInvoke + operator fun invoke(text: String, rawText: String? = definedExternally, templateFlags: TokenFlags? = definedExternally): TemplateHead + @nativeInvoke + operator fun invoke(text: String?, rawText: String, templateFlags: TokenFlags? = definedExternally): TemplateHead +} + +external object createTemplateMiddle { + @nativeInvoke + operator fun invoke(text: String, rawText: String? = definedExternally, templateFlags: TokenFlags? = definedExternally): TemplateMiddle + @nativeInvoke + operator fun invoke(text: String?, rawText: String, templateFlags: TokenFlags? = definedExternally): TemplateMiddle +} + +external object createTemplateTail { + @nativeInvoke + operator fun invoke(text: String, rawText: String? = definedExternally, templateFlags: TokenFlags? = definedExternally): TemplateTail + @nativeInvoke + operator fun invoke(text: String?, rawText: String, templateFlags: TokenFlags? = definedExternally): TemplateTail +} + +external object createNoSubstitutionTemplateLiteral { + @nativeInvoke + operator fun invoke(text: String, rawText: String? = definedExternally): NoSubstitutionTemplateLiteral + @nativeInvoke + operator fun invoke(text: String?, rawText: String): NoSubstitutionTemplateLiteral +} + +external var updateYield: (node: YieldExpression, asteriskToken: AsteriskToken?, expression: Expression?) -> YieldExpression + +external var createSpread: (expression: Expression) -> SpreadElement + +external var updateSpread: (node: SpreadElement, expression: Expression) -> SpreadElement + +external var createOmittedExpression: () -> OmittedExpression + +external var createAsExpression: (expression: Expression, type: TypeNode) -> AsExpression + +external var updateAsExpression: (node: AsExpression, expression: Expression, type: TypeNode) -> AsExpression + +external var createNonNullExpression: (expression: Expression) -> NonNullExpression + +external var updateNonNullExpression: (node: NonNullExpression, expression: Expression) -> NonNullExpression + +external var createNonNullChain: (expression: Expression) -> NonNullChain + +external var updateNonNullChain: (node: NonNullChain, expression: Expression) -> NonNullChain + +external var createMetaProperty: (keywordToken: dynamic /* SyntaxKind.ImportKeyword | SyntaxKind.NewKeyword */, name: Identifier) -> MetaProperty + +external var updateMetaProperty: (node: MetaProperty, name: Identifier) -> MetaProperty + +external var createTemplateSpan: (expression: Expression, literal: dynamic /* TemplateMiddle | TemplateTail */) -> TemplateSpan + +external var updateTemplateSpan: (node: TemplateSpan, expression: Expression, literal: dynamic /* TemplateMiddle | TemplateTail */) -> TemplateSpan + +external var createSemicolonClassElement: () -> SemicolonClassElement + +external var createBlock: (statements: Array, multiLine: Boolean?) -> Block + +external var updateBlock: (node: Block, statements: Array) -> Block + +external var createVariableStatement: (modifiers: Array?, declarationList: dynamic /* VariableDeclarationList | Array */) -> VariableStatement + +external var updateVariableStatement: (node: VariableStatement, modifiers: Array?, declarationList: VariableDeclarationList) -> VariableStatement + +external var createEmptyStatement: () -> EmptyStatement + +external var createExpressionStatement: (expression: Expression) -> ExpressionStatement + +external var updateExpressionStatement: (node: ExpressionStatement, expression: Expression) -> ExpressionStatement + +external var createStatement: (expression: Expression) -> ExpressionStatement + +external var updateStatement: (node: ExpressionStatement, expression: Expression) -> ExpressionStatement + +external var createIf: (expression: Expression, thenStatement: Statement, elseStatement: Statement?) -> IfStatement + +external var updateIf: (node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement?) -> IfStatement + +external var createDo: (statement: Statement, expression: Expression) -> DoStatement + +external var updateDo: (node: DoStatement, statement: Statement, expression: Expression) -> DoStatement + +external var createWhile: (expression: Expression, statement: Statement) -> WhileStatement + +external var updateWhile: (node: WhileStatement, expression: Expression, statement: Statement) -> WhileStatement + +external var createFor: (initializer: dynamic /* VariableDeclarationList? | Expression? */, condition: Expression?, incrementor: Expression?, statement: Statement) -> ForStatement + +external var updateFor: (node: ForStatement, initializer: dynamic /* VariableDeclarationList? | Expression? */, condition: Expression?, incrementor: Expression?, statement: Statement) -> ForStatement + +external var createForIn: (initializer: dynamic /* VariableDeclarationList | Expression */, expression: Expression, statement: Statement) -> ForInStatement + +external var updateForIn: (node: ForInStatement, initializer: dynamic /* VariableDeclarationList | Expression */, expression: Expression, statement: Statement) -> ForInStatement + +external var createForOf: (awaitModifier: AwaitKeyword?, initializer: dynamic /* VariableDeclarationList | Expression */, expression: Expression, statement: Statement) -> ForOfStatement + +external var updateForOf: (node: ForOfStatement, awaitModifier: AwaitKeyword?, initializer: dynamic /* VariableDeclarationList | Expression */, expression: Expression, statement: Statement) -> ForOfStatement + +external var createContinue: (label: dynamic /* String? | Identifier? */) -> ContinueStatement + +external var updateContinue: (node: ContinueStatement, label: Identifier?) -> ContinueStatement + +external var createBreak: (label: dynamic /* String? | Identifier? */) -> BreakStatement + +external var updateBreak: (node: BreakStatement, label: Identifier?) -> BreakStatement + +external var createReturn: (expression: Expression?) -> ReturnStatement + +external var updateReturn: (node: ReturnStatement, expression: Expression?) -> ReturnStatement + +external var createWith: (expression: Expression, statement: Statement) -> WithStatement + +external var updateWith: (node: WithStatement, expression: Expression, statement: Statement) -> WithStatement + +external var createSwitch: (expression: Expression, caseBlock: CaseBlock) -> SwitchStatement + +external var updateSwitch: (node: SwitchStatement, expression: Expression, caseBlock: CaseBlock) -> SwitchStatement + +external var createLabel: (label: dynamic /* String | Identifier */, statement: Statement) -> LabeledStatement + +external var updateLabel: (node: LabeledStatement, label: Identifier, statement: Statement) -> LabeledStatement + +external var createThrow: (expression: Expression) -> ThrowStatement + +external var updateThrow: (node: ThrowStatement, expression: Expression) -> ThrowStatement + +external var createTry: (tryBlock: Block, catchClause: CatchClause?, finallyBlock: Block?) -> TryStatement + +external var updateTry: (node: TryStatement, tryBlock: Block, catchClause: CatchClause?, finallyBlock: Block?) -> TryStatement + +external var createDebuggerStatement: () -> DebuggerStatement + +external var createVariableDeclarationList: (declarations: Array, flags: NodeFlags?) -> VariableDeclarationList + +external var updateVariableDeclarationList: (node: VariableDeclarationList, declarations: Array) -> VariableDeclarationList + +external var createFunctionDeclaration: (decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: dynamic /* String? | Identifier? */, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?) -> FunctionDeclaration + +external var updateFunctionDeclaration: (node: FunctionDeclaration, decorators: Array?, modifiers: Array?, asteriskToken: AsteriskToken?, name: Identifier?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Block?) -> FunctionDeclaration + +external var createClassDeclaration: (decorators: Array?, modifiers: Array?, name: dynamic /* String? | Identifier? */, typeParameters: Array?, heritageClauses: Array?, members: Array) -> ClassDeclaration + +external var updateClassDeclaration: (node: ClassDeclaration, decorators: Array?, modifiers: Array?, name: Identifier?, typeParameters: Array?, heritageClauses: Array?, members: Array) -> ClassDeclaration + +external var createInterfaceDeclaration: (decorators: Array?, modifiers: Array?, name: dynamic /* String | Identifier */, typeParameters: Array?, heritageClauses: Array?, members: Array) -> InterfaceDeclaration + +external var updateInterfaceDeclaration: (node: InterfaceDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, typeParameters: Array?, heritageClauses: Array?, members: Array) -> InterfaceDeclaration + +external var createTypeAliasDeclaration: (decorators: Array?, modifiers: Array?, name: dynamic /* String | Identifier */, typeParameters: Array?, type: TypeNode) -> TypeAliasDeclaration + +external var updateTypeAliasDeclaration: (node: TypeAliasDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, typeParameters: Array?, type: TypeNode) -> TypeAliasDeclaration + +external var createEnumDeclaration: (decorators: Array?, modifiers: Array?, name: dynamic /* String | Identifier */, members: Array) -> EnumDeclaration + +external var updateEnumDeclaration: (node: EnumDeclaration, decorators: Array?, modifiers: Array?, name: Identifier, members: Array) -> EnumDeclaration + +external var createModuleDeclaration: (decorators: Array?, modifiers: Array?, name: dynamic /* Identifier | StringLiteral */, body: dynamic /* ModuleBlock? | NamespaceDeclaration? | Identifier? | JSDocNamespaceDeclaration? */, flags: NodeFlags?) -> ModuleDeclaration + +external var updateModuleDeclaration: (node: ModuleDeclaration, decorators: Array?, modifiers: Array?, name: dynamic /* Identifier | StringLiteral */, body: dynamic /* ModuleBlock? | NamespaceDeclaration? | Identifier? | JSDocNamespaceDeclaration? */) -> ModuleDeclaration + +external var createModuleBlock: (statements: Array) -> ModuleBlock + +external var updateModuleBlock: (node: ModuleBlock, statements: Array) -> ModuleBlock + +external var createCaseBlock: (clauses: Array) -> CaseBlock + +external var updateCaseBlock: (node: CaseBlock, clauses: Array) -> CaseBlock + +external var createNamespaceExportDeclaration: (name: dynamic /* String | Identifier */) -> NamespaceExportDeclaration + +external var updateNamespaceExportDeclaration: (node: NamespaceExportDeclaration, name: Identifier) -> NamespaceExportDeclaration + +external var createImportEqualsDeclaration: (decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: dynamic /* String | Identifier */, moduleReference: dynamic /* Identifier | QualifiedName | ExternalModuleReference */) -> ImportEqualsDeclaration + +external var updateImportEqualsDeclaration: (node: ImportEqualsDeclaration, decorators: Array?, modifiers: Array?, isTypeOnly: Boolean, name: Identifier, moduleReference: dynamic /* Identifier | QualifiedName | ExternalModuleReference */) -> ImportEqualsDeclaration + +external var createImportDeclaration: (decorators: Array?, modifiers: Array?, importClause: ImportClause?, moduleSpecifier: Expression) -> ImportDeclaration + +external var updateImportDeclaration: (node: ImportDeclaration, decorators: Array?, modifiers: Array?, importClause: ImportClause?, moduleSpecifier: Expression) -> ImportDeclaration + +external var createNamespaceImport: (name: Identifier) -> NamespaceImport + +external var updateNamespaceImport: (node: NamespaceImport, name: Identifier) -> NamespaceImport + +external var createNamedImports: (elements: Array) -> NamedImports + +external var updateNamedImports: (node: NamedImports, elements: Array) -> NamedImports + +external var createImportSpecifier: (propertyName: Identifier?, name: Identifier) -> ImportSpecifier + +external var updateImportSpecifier: (node: ImportSpecifier, propertyName: Identifier?, name: Identifier) -> ImportSpecifier + +external var createExportAssignment: (decorators: Array?, modifiers: Array?, isExportEquals: Boolean?, expression: Expression) -> ExportAssignment + +external var updateExportAssignment: (node: ExportAssignment, decorators: Array?, modifiers: Array?, expression: Expression) -> ExportAssignment + +external var createNamedExports: (elements: Array) -> NamedExports + +external var updateNamedExports: (node: NamedExports, elements: Array) -> NamedExports + +external var createExportSpecifier: (propertyName: dynamic /* String? | Identifier? */, name: dynamic /* String | Identifier */) -> ExportSpecifier + +external var updateExportSpecifier: (node: ExportSpecifier, propertyName: Identifier?, name: Identifier) -> ExportSpecifier + +external var createExternalModuleReference: (expression: Expression) -> ExternalModuleReference + +external var updateExternalModuleReference: (node: ExternalModuleReference, expression: Expression) -> ExternalModuleReference + +external var createJSDocTypeExpression: (type: TypeNode) -> JSDocTypeExpression + +external var createJSDocTypeTag: (tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: dynamic /* String? | NodeArray? */) -> JSDocTypeTag + +external var createJSDocReturnTag: (tagName: Identifier?, typeExpression: JSDocTypeExpression?, comment: dynamic /* String? | NodeArray? */) -> JSDocReturnTag + +external var createJSDocThisTag: (tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: dynamic /* String? | NodeArray? */) -> JSDocThisTag + +external var createJSDocComment: (comment: dynamic /* String? | NodeArray? */, tags: Array?) -> JSDoc + +external var createJSDocParameterTag: (tagName: Identifier?, name: dynamic /* Identifier | QualifiedName */, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean?, comment: dynamic /* String? | NodeArray? */) -> JSDocParameterTag + +external var createJSDocClassTag: (tagName: Identifier?, comment: dynamic /* String? | NodeArray? */) -> JSDocClassTag + +external var createJSDocAugmentsTag: (tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: dynamic /* String? | NodeArray? */) -> JSDocAugmentsTag + +external var createJSDocEnumTag: (tagName: Identifier?, typeExpression: JSDocTypeExpression, comment: dynamic /* String? | NodeArray? */) -> JSDocEnumTag + +external var createJSDocTemplateTag: (tagName: Identifier?, constraint: JSDocTypeExpression?, typeParameters: Array, comment: dynamic /* String? | NodeArray? */) -> JSDocTemplateTag + +external var createJSDocTypedefTag: (tagName: Identifier?, typeExpression: dynamic /* JSDocTypeLiteral? | JSDocTypeExpression? */, fullName: dynamic /* Identifier? | JSDocNamespaceDeclaration? */, comment: dynamic /* String? | NodeArray? */) -> JSDocTypedefTag + +external var createJSDocCallbackTag: (tagName: Identifier?, typeExpression: JSDocSignature, fullName: dynamic /* Identifier? | JSDocNamespaceDeclaration? */, comment: dynamic /* String? | NodeArray? */) -> JSDocCallbackTag + +external var createJSDocSignature: (typeParameters: Array?, parameters: Array, type: JSDocReturnTag?) -> JSDocSignature + +external var createJSDocPropertyTag: (tagName: Identifier?, name: dynamic /* Identifier | QualifiedName */, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, isNameFirst: Boolean?, comment: dynamic /* String? | NodeArray? */) -> JSDocPropertyTag + +external var createJSDocTypeLiteral: (jsDocPropertyTags: Array?, isArrayType: Boolean?) -> JSDocTypeLiteral + +external var createJSDocImplementsTag: (tagName: Identifier?, className: ExpressionWithTypeArguments /* ExpressionWithTypeArguments & `T$21` */, comment: dynamic /* String? | NodeArray? */) -> JSDocImplementsTag + +external var createJSDocAuthorTag: (tagName: Identifier?, comment: dynamic /* String? | NodeArray? */) -> JSDocAuthorTag + +external var createJSDocPublicTag: (tagName: Identifier?, comment: dynamic /* String? | NodeArray? */) -> JSDocPublicTag + +external var createJSDocPrivateTag: (tagName: Identifier?, comment: dynamic /* String? | NodeArray? */) -> JSDocPrivateTag + +external var createJSDocProtectedTag: (tagName: Identifier?, comment: dynamic /* String? | NodeArray? */) -> JSDocProtectedTag + +external var createJSDocReadonlyTag: (tagName: Identifier?, comment: dynamic /* String? | NodeArray? */) -> JSDocReadonlyTag + +external var createJSDocTag: (tagName: Identifier, comment: dynamic /* String? | NodeArray? */) -> JSDocUnknownTag + +external var createJsxElement: (openingElement: JsxOpeningElement, children: Array, closingElement: JsxClosingElement) -> JsxElement + +external var updateJsxElement: (node: JsxElement, openingElement: JsxOpeningElement, children: Array, closingElement: JsxClosingElement) -> JsxElement + +external var createJsxSelfClosingElement: (tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */, typeArguments: Array?, attributes: JsxAttributes) -> JsxSelfClosingElement + +external var updateJsxSelfClosingElement: (node: JsxSelfClosingElement, tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */, typeArguments: Array?, attributes: JsxAttributes) -> JsxSelfClosingElement + +external var createJsxOpeningElement: (tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */, typeArguments: Array?, attributes: JsxAttributes) -> JsxOpeningElement + +external var updateJsxOpeningElement: (node: JsxOpeningElement, tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */, typeArguments: Array?, attributes: JsxAttributes) -> JsxOpeningElement + +external var createJsxClosingElement: (tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */) -> JsxClosingElement + +external var updateJsxClosingElement: (node: JsxClosingElement, tagName: dynamic /* Identifier | ThisExpression | JsxTagNamePropertyAccess */) -> JsxClosingElement + +external var createJsxFragment: (openingFragment: JsxOpeningFragment, children: Array, closingFragment: JsxClosingFragment) -> JsxFragment + +external var createJsxText: (text: String, containsOnlyTriviaWhiteSpaces: Boolean?) -> JsxText + +external var updateJsxText: (node: JsxText, text: String, containsOnlyTriviaWhiteSpaces: Boolean?) -> JsxText + +external var createJsxOpeningFragment: () -> JsxOpeningFragment + +external var createJsxJsxClosingFragment: () -> JsxClosingFragment + +external var updateJsxFragment: (node: JsxFragment, openingFragment: JsxOpeningFragment, children: Array, closingFragment: JsxClosingFragment) -> JsxFragment + +external var createJsxAttribute: (name: Identifier, initializer: dynamic /* StringLiteral? | JsxExpression? */) -> JsxAttribute + +external var updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: dynamic /* StringLiteral? | JsxExpression? */) -> JsxAttribute + +external var createJsxAttributes: (properties: Array) -> JsxAttributes + +external var updateJsxAttributes: (node: JsxAttributes, properties: Array) -> JsxAttributes + +external var createJsxSpreadAttribute: (expression: Expression) -> JsxSpreadAttribute + +external var updateJsxSpreadAttribute: (node: JsxSpreadAttribute, expression: Expression) -> JsxSpreadAttribute + +external var createJsxExpression: (dotDotDotToken: DotDotDotToken?, expression: Expression?) -> JsxExpression + +external var updateJsxExpression: (node: JsxExpression, expression: Expression?) -> JsxExpression + +external var createCaseClause: (expression: Expression, statements: Array) -> CaseClause + +external var updateCaseClause: (node: CaseClause, expression: Expression, statements: Array) -> CaseClause + +external var createDefaultClause: (statements: Array) -> DefaultClause + +external var updateDefaultClause: (node: DefaultClause, statements: Array) -> DefaultClause + +external var createHeritageClause: (token: dynamic /* SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword */, types: Array) -> HeritageClause + +external var updateHeritageClause: (node: HeritageClause, types: Array) -> HeritageClause + +external var createCatchClause: (variableDeclaration: dynamic /* String? | VariableDeclaration? */, block: Block) -> CatchClause + +external var updateCatchClause: (node: CatchClause, variableDeclaration: VariableDeclaration?, block: Block) -> CatchClause + +external var createPropertyAssignment: (name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, initializer: Expression) -> PropertyAssignment + +external var updatePropertyAssignment: (node: PropertyAssignment, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, initializer: Expression) -> PropertyAssignment + +external var createShorthandPropertyAssignment: (name: dynamic /* String | Identifier */, objectAssignmentInitializer: Expression?) -> ShorthandPropertyAssignment + +external var updateShorthandPropertyAssignment: (node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression?) -> ShorthandPropertyAssignment + +external var createSpreadAssignment: (expression: Expression) -> SpreadAssignment + +external var updateSpreadAssignment: (node: SpreadAssignment, expression: Expression) -> SpreadAssignment + +external var createEnumMember: (name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, initializer: Expression?) -> EnumMember + +external var updateEnumMember: (node: EnumMember, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, initializer: Expression?) -> EnumMember + +external var updateSourceFileNode: (node: SourceFile, statements: Array, isDeclarationFile: Boolean?, referencedFiles: Array?, typeReferences: Array?, hasNoDefaultLib: Boolean?, libReferences: Array?) -> SourceFile + +external var createNotEmittedStatement: (original: Node) -> NotEmittedStatement + +external var createPartiallyEmittedExpression: (expression: Expression, original: Node?) -> PartiallyEmittedExpression + +external var updatePartiallyEmittedExpression: (node: PartiallyEmittedExpression, expression: Expression) -> PartiallyEmittedExpression + +external var createCommaList: (elements: Array) -> CommaListExpression + +external var updateCommaList: (node: CommaListExpression, elements: Array) -> CommaListExpression + +external var createBundle: (sourceFiles: Array, prepends: Array?) -> Bundle + +external var updateBundle: (node: Bundle, sourceFiles: Array, prepends: Array?) -> Bundle + +external object createImmediatelyInvokedFunctionExpression { + @nativeInvoke + operator fun invoke(statements: Array): CallExpression + @nativeInvoke + operator fun invoke(statements: Array, param: ParameterDeclaration, paramValue: Expression): CallExpression +} + +external object createImmediatelyInvokedArrowFunction { + @nativeInvoke + operator fun invoke(statements: Array): CallExpression + @nativeInvoke + operator fun invoke(statements: Array, param: ParameterDeclaration, paramValue: Expression): CallExpression +} + +external var createVoidZero: () -> VoidExpression + +external var createExportDefault: (expression: Expression) -> ExportAssignment + +external var createExternalModuleExport: (exportName: Identifier) -> ExportDeclaration + +external var createNamespaceExport: (name: Identifier) -> NamespaceExport + +external var updateNamespaceExport: (node: NamespaceExport, name: Identifier) -> NamespaceExport + +external var createToken: (kind: TKind) -> Token + +external var createIdentifier: (text: String) -> Identifier + +external var createTempVariable: (recordTempVariable: ((node: Identifier) -> Unit)?) -> Identifier + +external var getGeneratedNameForNode: (node: Node?) -> Identifier + +external var createOptimisticUniqueName: (text: String) -> Identifier + +external var createFileLevelUniqueName: (text: String) -> Identifier + +external var createIndexSignature: (decorators: Array?, modifiers: Array?, parameters: Array, type: TypeNode) -> IndexSignatureDeclaration + +external var createTypePredicateNode: (parameterName: dynamic /* Identifier | ThisTypeNode | String */, type: TypeNode) -> TypePredicateNode + +external var updateTypePredicateNode: (node: TypePredicateNode, parameterName: dynamic /* Identifier | ThisTypeNode */, type: TypeNode) -> TypePredicateNode + +external object createLiteral { + @nativeInvoke + operator fun invoke(value: Any /* String | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | Identifier */): StringLiteral + @nativeInvoke + operator fun invoke(value: Any /* Number | PseudoBigInt */): NumericLiteral + @nativeInvoke + operator fun invoke(value: Boolean): dynamic /* TrueLiteral | FalseLiteral */ + @nativeInvoke + operator fun invoke(value: Any /* String | Number | PseudoBigInt | Boolean */): PrimaryExpression +} + +external var createMethodSignature: (typeParameters: Array?, parameters: Array, type: TypeNode?, name: dynamic /* String | Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, questionToken: QuestionToken?) -> MethodSignature + +external var updateMethodSignature: (node: MethodSignature, typeParameters: NodeArray?, parameters: NodeArray, type: TypeNode?, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, questionToken: QuestionToken?) -> MethodSignature + +external object createTypeOperatorNode { + @nativeInvoke + operator fun invoke(type: TypeNode): TypeOperatorNode + @nativeInvoke + operator fun invoke(operator: Any /* SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword */, type: TypeNode): TypeOperatorNode +} + +external object createTaggedTemplate { + @nativeInvoke + operator fun invoke(tag: Expression, template: Any /* TemplateExpression | NoSubstitutionTemplateLiteral */): TaggedTemplateExpression + @nativeInvoke + operator fun invoke(tag: Expression, typeArguments: Array?, template: Any /* TemplateExpression | NoSubstitutionTemplateLiteral */): TaggedTemplateExpression +} + +external object updateTaggedTemplate { + @nativeInvoke + operator fun invoke(node: TaggedTemplateExpression, tag: Expression, template: Any /* TemplateExpression | NoSubstitutionTemplateLiteral */): TaggedTemplateExpression + @nativeInvoke + operator fun invoke(node: TaggedTemplateExpression, tag: Expression, typeArguments: Array?, template: Any /* TemplateExpression | NoSubstitutionTemplateLiteral */): TaggedTemplateExpression +} + +external var updateBinary: (node: BinaryExpression, left: Expression, right: Expression, operator: dynamic /* SyntaxKind.QuestionQuestionToken | ExponentiationOperator | SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword | SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.QuestionQuestionEqualsToken | SyntaxKind.CommaToken | BinaryOperatorToken */) -> BinaryExpression + +external object createConditional { + @nativeInvoke + operator fun invoke(condition: Expression, whenTrue: Expression, whenFalse: Expression): ConditionalExpression + @nativeInvoke + operator fun invoke(condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression +} + +external object createYield { + @nativeInvoke + operator fun invoke(expression: Expression? = definedExternally): YieldExpression + @nativeInvoke + operator fun invoke(asteriskToken: AsteriskToken?, expression: Expression): YieldExpression +} + +external var createClassExpression: (modifiers: Array?, name: dynamic /* String? | Identifier? */, typeParameters: Array?, heritageClauses: Array?, members: Array) -> ClassExpression + +external var updateClassExpression: (node: ClassExpression, modifiers: Array?, name: Identifier?, typeParameters: Array?, heritageClauses: Array?, members: Array) -> ClassExpression + +external var createPropertySignature: (modifiers: Array?, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier | String */, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?) -> PropertySignature + +external var updatePropertySignature: (node: PropertySignature, modifiers: Array?, name: dynamic /* Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier */, questionToken: QuestionToken?, type: TypeNode?, initializer: Expression?) -> PropertySignature + +external var createExpressionWithTypeArguments: (typeArguments: Array?, expression: Expression) -> ExpressionWithTypeArguments + +external var updateExpressionWithTypeArguments: (node: ExpressionWithTypeArguments, typeArguments: Array?, expression: Expression) -> ExpressionWithTypeArguments + +external object createArrowFunction { + @nativeInvoke + operator fun invoke(modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, equalsGreaterThanToken: EqualsGreaterThanToken?, body: Any /* FunctionBody | Expression */): ArrowFunction + @nativeInvoke + operator fun invoke(modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Any /* FunctionBody | Expression */): ArrowFunction +} + +external object updateArrowFunction { + @nativeInvoke + operator fun invoke(node: ArrowFunction, modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, equalsGreaterThanToken: EqualsGreaterThanToken, body: Any /* FunctionBody | Expression */): ArrowFunction + @nativeInvoke + operator fun invoke(node: ArrowFunction, modifiers: Array?, typeParameters: Array?, parameters: Array, type: TypeNode?, body: Any /* FunctionBody | Expression */): ArrowFunction +} + +external object createVariableDeclaration { + @nativeInvoke + operator fun invoke(name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, type: TypeNode? = definedExternally, initializer: Expression? = definedExternally): VariableDeclaration + @nativeInvoke + operator fun invoke(name: Any /* String | Identifier | ObjectBindingPattern | ArrayBindingPattern */, exclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): VariableDeclaration +} + +external object updateVariableDeclaration { + @nativeInvoke + operator fun invoke(node: VariableDeclaration, name: Any /* Identifier | ObjectBindingPattern | ArrayBindingPattern */, type: TypeNode?, initializer: Expression?): VariableDeclaration + @nativeInvoke + operator fun invoke(node: VariableDeclaration, name: Any /* Identifier | ObjectBindingPattern | ArrayBindingPattern */, exclamationToken: ExclamationToken?, type: TypeNode?, initializer: Expression?): VariableDeclaration +} + +external var createImportClause: (name: Identifier?, namedBindings: dynamic /* NamespaceImport? | NamedImports? */, isTypeOnly: Any) -> ImportClause + +external var updateImportClause: (node: ImportClause, name: Identifier?, namedBindings: dynamic /* NamespaceImport? | NamedImports? */, isTypeOnly: Boolean) -> ImportClause + +external var createExportDeclaration: (decorators: Array?, modifiers: Array?, exportClause: dynamic /* NamespaceExport? | NamedExports? */, moduleSpecifier: Expression?, isTypeOnly: Any) -> ExportDeclaration + +external var updateExportDeclaration: (node: ExportDeclaration, decorators: Array?, modifiers: Array?, exportClause: dynamic /* NamespaceExport? | NamedExports? */, moduleSpecifier: Expression?, isTypeOnly: Boolean) -> ExportDeclaration + +external var createJSDocParamTag: (name: dynamic /* Identifier | QualifiedName */, isBracketed: Boolean, typeExpression: JSDocTypeExpression?, comment: String?) -> JSDocParameterTag + +external var createComma: (left: Expression, right: Expression) -> Expression + +external var createLessThan: (left: Expression, right: Expression) -> Expression + +external var createAssignment: (left: Expression, right: Expression) -> BinaryExpression + +external var createStrictEquality: (left: Expression, right: Expression) -> BinaryExpression + +external var createStrictInequality: (left: Expression, right: Expression) -> BinaryExpression + +external var createAdd: (left: Expression, right: Expression) -> BinaryExpression + +external var createSubtract: (left: Expression, right: Expression) -> BinaryExpression + +external var createLogicalAnd: (left: Expression, right: Expression) -> BinaryExpression + +external var createLogicalOr: (left: Expression, right: Expression) -> BinaryExpression + +external var createPostfixIncrement: (operand: Expression) -> PostfixUnaryExpression + +external var createLogicalNot: (operand: Expression) -> PrefixUnaryExpression + +external var createNode: (kind: SyntaxKind, pos: Any, end: Any) -> Node + +external var getMutableClone: (node: T) -> T + +external var isTypeAssertion: (node: Node) -> Boolean + +external var isIdentifierOrPrivateIdentifier: (node: Node) -> Boolean \ No newline at end of file diff --git a/modules/mod2/externals/typescript.ts.server.module_typescript.kt b/modules/mod2/externals/typescript.ts.server.module_typescript.kt new file mode 100644 index 0000000..4ce5432 --- /dev/null +++ b/modules/mod2/externals/typescript.ts.server.module_typescript.kt @@ -0,0 +1,104 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") +package ts.server + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.CompilerOptions +import ts.WatchOptions +import ts.TypeAcquisition +import ts.SortedReadonlyArray + +external interface TypingInstallerResponse { + var kind: String /* "action::set" | "action::invalidate" | "event::typesRegistry" | "action::packageInstalled" | "event::beginInstallTypes" | "event::endInstallTypes" | "event::initializationFailed" */ +} + +external interface TypingInstallerRequestWithProjectName { + var projectName: String +} + +external interface DiscoverTypings : TypingInstallerRequestWithProjectName { + var fileNames: Array + var projectRootPath: String /* String & `T$3` */ + var compilerOptions: CompilerOptions + var watchOptions: WatchOptions? + get() = definedExternally + set(value) = definedExternally + var typeAcquisition: TypeAcquisition + var unresolvedImports: SortedReadonlyArray + var cachePath: String? + get() = definedExternally + set(value) = definedExternally + var kind: String /* "discover" */ +} + +external interface CloseProject : TypingInstallerRequestWithProjectName { + var kind: String /* "closeProject" */ +} + +external interface TypesRegistryRequest { + var kind: String /* "typesRegistry" */ +} + +external interface InstallPackageRequest : TypingInstallerRequestWithProjectName { + var kind: String /* "installPackage" */ + var fileName: String /* String & `T$3` */ + var packageName: String + var projectRootPath: String /* String & `T$3` */ +} + +external interface PackageInstalledResponse : ProjectResponse { + override var kind: String /* "action::packageInstalled" */ + var success: Boolean + var message: String +} + +external interface InitializationFailedResponse : TypingInstallerResponse { + override var kind: String /* "event::initializationFailed" */ + var message: String + var stack: String? + get() = definedExternally + set(value) = definedExternally +} + +external interface ProjectResponse : TypingInstallerResponse { + var projectName: String +} + +external interface InvalidateCachedTypings : ProjectResponse { + override var kind: String /* "action::invalidate" */ +} + +external interface InstallTypes : ProjectResponse { + override var kind: String /* "event::beginInstallTypes" | "event::endInstallTypes" */ + var eventId: Number + var typingsInstallerVersion: String + var packagesToInstall: Array +} + +external interface BeginInstallTypes : InstallTypes { + override var kind: String /* "event::beginInstallTypes" */ +} + +external interface EndInstallTypes : InstallTypes { + override var kind: String /* "event::endInstallTypes" */ + var installSuccess: Boolean +} + +external interface SetTypings : ProjectResponse { + var typeAcquisition: TypeAcquisition + var compilerOptions: CompilerOptions + var typings: Array + var unresolvedImports: SortedReadonlyArray + override var kind: String /* "action::set" */ +} \ No newline at end of file diff --git a/modules/mod2/externals/utils.module_typescript-to-lua.kt b/modules/mod2/externals/utils.module_typescript-to-lua.kt new file mode 100644 index 0000000..08363d8 --- /dev/null +++ b/modules/mod2/externals/utils.module_typescript-to-lua.kt @@ -0,0 +1,46 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.WriteFileCallback +import ts.SourceFile + +external interface EmitHost { + fun directoryExists(path: String): Boolean + fun fileExists(path: String): Boolean + fun getCurrentDirectory(): String + fun readFile(path: String): String? + var writeFile: WriteFileCallback +} + +external interface BaseFile { + var code: String + var sourceMap: String? + get() = definedExternally + set(value) = definedExternally + var sourceFiles: Array? + get() = definedExternally + set(value) = definedExternally +} + +external interface ProcessedFile : BaseFile { + var fileName: String + var luaAst: File? + get() = definedExternally + set(value) = definedExternally +} + +external interface EmitFile : BaseFile { + var outputPath: String +} \ No newline at end of file diff --git a/modules/mod2/externals/visitors.module_typescript-to-lua.kt b/modules/mod2/externals/visitors.module_typescript-to-lua.kt new file mode 100644 index 0000000..69513ac --- /dev/null +++ b/modules/mod2/externals/visitors.module_typescript-to-lua.kt @@ -0,0 +1,38 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS") + +import kotlin.js.* +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* +import ts.Statement +import ts.Node +import tsstdlib.Map +import ts.SyntaxKind + +external interface NodesBySyntaxKind + +typealias StatementLikeNode = Statement + +typealias VisitorResult = Any + +typealias FunctionVisitor = (node: T, context: TransformationContext) -> VisitorResult + +external interface ObjectVisitor { + var transform: FunctionVisitor + var priority: Number? + get() = definedExternally + set(value) = definedExternally +} + +typealias Visitors = Any + +typealias VisitorMap = Map>> \ No newline at end of file diff --git a/modules/server/settings.gradle.kts b/modules/server/settings.gradle.kts deleted file mode 100644 index 36dc4be..0000000 --- a/modules/server/settings.gradle.kts +++ /dev/null @@ -1,3 +0,0 @@ -rootProject.name = "factorio-web-map-server" - -rootProject.description = "Factorio Web Map server" diff --git a/settings.gradle.kts b/settings.gradle.kts index 8ae1bcb..bc26244 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,6 +1,10 @@ - rootProject.name = "factorio-web-map" +include( +// ":modules:mod", + ":modules:mod2", + ":modules:server", +) enableFeaturePreview("VERSION_CATALOGS") enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") @@ -8,12 +12,33 @@ enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") @Suppress("UnstableApiUsage") dependencyResolutionManagement { -// repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + // https://github.com/gradle/gradle/issues/15754#issuecomment-763614651 + // https://github.com/gradle/gradle/blob/09fcaacc9848f09aa584b4119be9271bee6916e6/build-logic/build-logic-base/settings-plugin/src/main/kotlin/gradlebuild.repositories.settings.gradle.kts#L68 + + // Cannot use 'FAIL_ON_PROJECT_REPOS' because + // - the 'gradle-guides-plugin' adds a repo (which it should not do) + // - the 'kotlin-gradle-plugin' adds a repo (and removes it afterwards) to download NodeJS + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { mavenCentral() - maven ("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") + + // Declare the Node.js download repository + ivy { + name = "Node.js" + setUrl("https://nodejs.org/dist/") + patternLayout { + artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") + } + metadataSources { + artifact() + } + content { + includeModule("org.nodejs", "node") + } + } } pluginManagement { diff --git a/xbuild.gradle.kts b/xbuild.gradle.kts new file mode 100644 index 0000000..de53fb0 --- /dev/null +++ b/xbuild.gradle.kts @@ -0,0 +1,124 @@ +import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension + +plugins { + kotlin("multiplatform") version "1.5.31" +} + +group = "dev.adamko.factoriowebmap" +version = "1.0-SNAPSHOT" + +kotlin { + + // + val hostOs = System.getProperty("os.name") + val isMingwX64 = hostOs.startsWith("Windows") + val nativeTarget = when { + hostOs == "Mac OS X" -> macosX64("native") + hostOs == "Linux" -> linuxX64("native") + isMingwX64 -> mingwX64("native") + else -> throw GradleException( + "Host OS '$hostOs' is not supported in Kotlin/Native.") + } + + nativeTarget.apply { + binaries { + executable { + entryPoint = "main" + } + sharedLib { + baseName = if (isMingwX64) "libnative" else "native" + } + } + } + sourceSets { + val nativeMain by getting { + dependencies { + implementation("com.soywiz.korlibs.luak:luak:2.4.3") + } + } + val nativeTest by getting { + dependencies { + implementation(kotlin("test")) + + } + } + } + // + + // + js(IR) { + binaries.executable() + browser { + commonWebpackConfig { + cssSupport.enabled = true + } + } + + useCommonJs() + nodejs() + + compilations["main"].apply { + packageJson { + customField( + "scripts", + mapOf( + "build" to "tstl", + "dev" to "tstl --watch", + ) + ) + } + } + + } + + sourceSets { + + val jsMain by getting { + kotlin.srcDir("externals02") +// kotlin.srcDir("externals") + + dependencies { + + val kotlinWrappersVersion = "0.0.1-pre.254-kotlin-1.5.31" + implementation( + project.dependencies.enforcedPlatform( + "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${kotlinWrappersVersion}" + ) + ) + + implementation("org.jetbrains.kotlin-wrappers:kotlin-react") + implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom") + implementation(npm("react", "17.0.2")) + implementation(npm("react-dom", "17.0.2")) + +// implementation("org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7") { +// because("https://github.com/Kotlin/kotlinx-nodejs") +// } + + val generateExternals = false + implementation(npm("typescript-to-lua", "1.0.1", generateExternals = generateExternals)) + implementation(npm("typed-factorio", "0.7.1", generateExternals = generateExternals)) + implementation(npm("lua-types", "2.11.0", generateExternals = generateExternals)) + implementation(npm("typescript", "4.4.3", generateExternals = generateExternals)) + } + } + + val jsTest by getting { + dependencies { + implementation(kotlin("test-js")) + } + } + } + // + +} + +configure { + versions.dukat.version = "0.5.8-rc.4-dev.20211001" +// versions.dukat.version = "0.5.8-rc.4" +} + +tasks.wrapper { + gradleVersion = "7.2" + distributionType = Wrapper.DistributionType.ALL +}