import { babelPreset, PresetOptions } from '@wpackio/babel-preset-base/lib/preset';
/**
 * Get default options for @wpackio/babel-preset-base considering whether
 * project has react and whether it is in development mode.
 *
 * @param hasReact Whether to include react jsx transform.
 * @param isDev Whether in development mode or production mode.
 */
export declare function getDefaultBabelPresetOptions(hasReact: boolean, isDev?: boolean): PresetOptions;
/**
 * Get final options for @wpackio/babel-preset-base, combining both
 * system default and user defined value.
 *
 * @param defaults Default options for @wpackio/babel-preset-base.
 * @param options User defined options for @wpackio/babel-preset-base.
 */
export declare function overrideBabelPresetOptions(defaults: PresetOptions, options: PresetOptions | undefined): PresetOptions;
export declare type typelang = 'flow' | 'typescript';
/**
 * Get Babel Presets for compiling JavaScript or TypeScript files.
 *
 * @param presetOptions Options for `@wpackio/base`.
 * @param typeChecker Whether to include preset for 'flow' or 'typescript'. Leave `undefined` to ignore both.
 */
export declare function getBabelPresets(presetOptions: PresetOptions, typeChecker?: typelang): babelPreset[];
