///
import * as t from '@babel/types';
import * as defaultBabelParser from '@babel/parser';
import { ParserOptions, ParserPlugin } from '@babel/parser';
declare type BabelParser = Pick;
export declare class Parser {
readonly babelParser: BabelParser;
readonly parserOpts: ParserOptions;
_forJs: Parser | undefined;
_forJsx: Parser | undefined;
_forTs: Parser | undefined;
_forTsx: Parser | undefined;
_forDts: Parser | undefined;
constructor(babelParser: BabelParser, parserOpts: ParserOptions);
parse(code: string, parserOpts?: ParserOptions): t.File;
parseExpression(code: string, parserOpts?: ParserOptions): t.Expression;
bindParserOpts(parserOpts: ParserOptions): Parser;
mergePlugins(...plugins: ParserPlugin[]): Parser;
removePlugins(...plugins: string[]): Parser;
get forJs(): Parser;
get forJsx(): Parser;
get forTs(): Parser;
get forTsx(): Parser;
get forDts(): Parser;
forExtension(e: string): Parser;
}
export declare const jsParser: Parser;
export declare const jsxParser: Parser;
export declare const tsParser: Parser;
export declare const tsxParser: Parser;
export declare const dtsParser: Parser;
export declare function clearCache(): void;
export declare function getParserSync(file: string, options?: ParserOptions): Parser;
export declare function getParserAsync(file: string, options?: ParserOptions): Promise;
export declare function parseSync(file: string, { encoding, ...options }?: {
encoding?: BufferEncoding;
} & ParserOptions): t.File;
export declare function parseAsync(file: string, { encoding, ...options }?: {
encoding?: BufferEncoding;
} & ParserOptions): Promise;
export {};