import type { ResolveTsConfig, RspackPluginFunction, RuleSetRule, SwcLoaderOptions } from '@rspack/core'; import type { RuleInsertOptions } from './types.ts'; export interface PluginTypeScriptOptions extends RuleInsertOptions { /** Extensions, that will be added to `resolve.extensions`. */ resolveExtensions?: string[] | false; /** TypeScript config file path, see `resolve.tsConfig` of Rspack configuration. */ tsConfig?: ResolveTsConfig | false; /** Configuration for `builtin:swc-loader`. */ swcLoaderOptions?: SwcLoaderOptions; /** When false passed, rule for TypeScript files will not be added to configuration. */ ruleEnabled?: boolean; /** Rule extension/override. */ ruleOverride?: Omit; } /** * Rspack plugin that adds support of TypeScript. * It adds rule for handling TypeScript source files. * It adds items to `resolve.extensions` in configuration (by default `.ts, .tsx` will be added). * It adds `resolve.tsConfig` with path to `tsconfig.json` in project root (when it is not provided in config). * By default it uses `automatic` React runtime in SWC config. * @param options Options. * @returns Plugin function. */ export declare function pluginTypeScript({ resolveExtensions, tsConfig, ruleEnabled, ruleInsert, ruleOverride, swcLoaderOptions, }?: PluginTypeScriptOptions): RspackPluginFunction;