import type { getPackageManagerCommand, TargetConfiguration } from '@nx/devkit'; export interface TypecheckTargetOptions { /** * `build` runs `tsc --build --emitDeclarationOnly` for TS solution setups. * `noEmit` runs `tsc -p --noEmit`. */ mode: 'build' | 'noEmit'; /** * Project root, used as the command's cwd. */ projectRoot: string; pmc: ReturnType; /** * Defaults to `tsconfig.json`, which is left out of the command. */ tsConfig?: string; /** * Defaults to `tsc`. */ compiler?: string; /** * Name of the typecheck target, for the dependency on referenced projects * in `build` mode. Defaults to `typecheck`. */ targetName?: string; /** * The project's build target, which `build` mode runs first. */ buildTargetName?: string; /** * Defaults to the `production` (or `default`) named input plus the * compiler package. */ inputs?: TargetConfiguration['inputs']; namedInputs?: Record; outputs?: string[]; technologies?: string[]; verboseOutput?: boolean; } /** * Builds a `typecheck` target. Plugins that infer a `tsc` one share this * shape so it stays compatible with the one `@nx/js/typescript` infers. */ export declare function createTypecheckTarget(options: TypecheckTargetOptions): TargetConfiguration; /** * The tsconfig a `noEmit` typecheck target should check, from the files next * to the project's config: the app, then the lib, then the root tsconfig. */ export declare function selectTypecheckTsConfig(tsConfigFiles: string[]): string | undefined; /** * Whether a tsconfig file name can go unquoted into a shell command. */ export declare function isShellSafeTsConfigName(name: string): boolean; /** * ` ` for a tsc command, or an empty string for `tsconfig.json`, * which tsc reads by default. */ export declare function getTsConfigArg(tsConfig: string | undefined): string;