import { Options } from 'ts-loader';
import { Configuration } from 'webpack';
import { RuleSetRuleWithStrategy } from './common';
export declare type TypeScriptRuleFeature = 'vue' | 'vue-jsx' | 'react' | 'control-statements' | 'antd' | 'material-ui';
export interface TypescriptRule extends RuleSetRuleWithStrategy {
    feature?: TypeScriptRuleFeature[];
    options?: Partial<Options>;
}
/**
 * Support TypeScript/ES2017+ transpile.
 * @example
 * // Use default options.
 * module.exports = merge({
 *     ts(),
 *     { ...others },
 * });
 * @example
 * // Ignore js/jsx and exclude files in `node_modules`.
 * module.exports = merge({
 *     ts({
 *         test: /\.tsx?$/,
 *         exclude: /node_modules/,
 *     }),
 *     { ...others },
 * });
 * @example
 * // Enable type checking while bundling.
 * module.exports = merge({
 *     ts({
 *         options: {
 *             transpileOnly: false,
 *         },
 *     }),
 *     { ...others },
 * });
 */
export declare function ts({ feature, ...rule }?: TypescriptRule): Configuration;
