import type TS from "typescript"; /** * EVERY module-level compiler function the scanners call (regenerate with * `grep -rhoE "\bts\??\.[A-Za-z_]+\(" packages/vendo/src/actions --include="*.ts" * --exclude="*.test.ts"`). Gating on the full set — each entry * feature-detected, never a version string — is what keeps the floor honest: * 4.8 added canHaveModifiers/getModifiers, but a 4.8 host still crashed on * isSatisfiesExpression, which arrives in 4.9 (checker round 2; verified * against real typescript 4.7.4 / 4.8.4 / 4.9.5 installs — 4.9.5 is the * first carrying the whole set, so 4.9 is the floor the warning names). * Forks or patched compilers that carry every API pass regardless of what * their version string claims. */ export declare const REQUIRED_COMPILER_API: readonly ["canHaveModifiers", "createCompilerHost", "createModuleResolutionCache", "createProgram", "createSourceFile", "findConfigFile", "flattenDiagnosticMessageText", "forEachChild", "getModifiers", "isArrayLiteralExpression", "isArrayTypeNode", "isArrowFunction", "isAsExpression", "isAwaitExpression", "isBinaryExpression", "isBlock", "isCallExpression", "isCaseBlock", "isCaseClause", "isClassDeclaration", "isDefaultClause", "isEnumDeclaration", "isExportAssignment", "isExportDeclaration", "isExpressionStatement", "isFunctionDeclaration", "isFunctionExpression", "isGetAccessorDeclaration", "isIdentifier", "isIfStatement", "isImportDeclaration", "isIndexSignatureDeclaration", "isJsxAttribute", "isJsxElement", "isJsxExpression", "isJsxFragment", "isJsxOpeningElement", "isJsxSelfClosingElement", "isLiteralTypeNode", "isMethodDeclaration", "isNamedExports", "isNamedImports", "isNamespaceExport", "isNamespaceImport", "isNewExpression", "isNoSubstitutionTemplateLiteral", "isNonNullExpression", "isNumericLiteral", "isObjectBindingPattern", "isObjectLiteralExpression", "isOmittedExpression", "isParenthesizedExpression", "isParenthesizedTypeNode", "isPrefixUnaryExpression", "isPropertyAccessExpression", "isPropertyAssignment", "isPropertyDeclaration", "isPropertySignature", "isReturnStatement", "isSatisfiesExpression", "isShorthandPropertyAssignment", "isSpreadAssignment", "isSpreadElement", "isStringLiteral", "isStringLiteralLike", "isTypeAssertionExpression", "isTypeLiteralNode", "isTypeQueryNode", "isTypeReferenceNode", "isUnionTypeNode", "isVariableDeclaration", "isVariableStatement", "parseConfigFileTextToJson", "parseJsonConfigFileContent", "readConfigFile", "resolveModuleName"]; /** The minimum released TypeScript carrying every required API. */ export declare const COMPILER_FLOOR = "4.9"; export interface RejectedCompiler { version: string; /** The first required API the candidate lacks, named in the floor warning. */ missingApi: string; } /** Null when the candidate exposes every API extraction needs; otherwise its * version and the first missing API, feeding the floor warning. */ export declare function unsupportedCompiler(candidate: unknown): RejectedCompiler | null; /** Called by a loader whose every resolution candidate loaded but failed the * capability probe; sync surfaces the result once per report. */ export declare function noteRejectedCompiler(rejected: RejectedCompiler): void; /** Called when no resolution base could load a compiler at all. */ export declare function noteUnresolvableCompiler(): void; /** The project being synced. Its node_modules is the FIRST place every * compiler load looks: under `npx` the running install cannot see the * project's typescript, and a compiler resolved from nowhere leaves every * extractor reporting empty results as if the project had nothing to find. */ export declare function setCompilerRoot(root: string): void; /** The host's compiler, project first and this install second, gated on the * capability probe. Null — with the reason noted for the report — when no base * yields a usable one. */ export declare function resolveCompiler(root?: string | undefined): typeof TS | null; /** The single host-facing warning when compiler-based extraction is off, * naming the cause. A rejected compiler is a NAMED cause and outranks the * bare "nothing resolved". Null while extraction has a usable compiler. */ export declare function compilerFloorWarning(): string | null; /** Test seam: the notes and the root are process-sticky by design. */ export declare function resetCompilerGateForTests(): void;