import { Binding } from '@tsdi/components';
import { Plugin, RollupOptions } from 'rollup';
import { CompilerOptions } from 'typescript';
import { NodeExpression, NodeActivityContext } from '../NodeActivityContext';
import { RollupActivity, RollupOption } from './RollupActivity';
/**
 * rollup activity template option.
 *
 * @export
 * @interface RollupOption
 * @extends {TemplateOption}
 */
export interface RollupTsOption extends RollupOption {
    /**
     * rollup annotation.
     *
     * @type {Binding<NodeExpression<boolean>>}
     * @memberof RollupOption
     */
    annotation?: Binding<NodeExpression<boolean>>;
    /**
     * include libs for auto create rollup options.
     *
     * @type {Binding<string[]>}
     * @memberof LibPackBuilderOption
     */
    includeLib?: Binding<string[]>;
    include?: Binding<NodeExpression<string[]>>;
    exclude?: Binding<NodeExpression<string[]>>;
    tsconfig?: Binding<NodeExpression<string>>;
    compileOptions?: Binding<NodeExpression<CompilerOptions>>;
    /**
     * dts sub folder name
     *
     * @type {string}
     * @memberof LibTaskOption
     */
    dts?: Binding<NodeExpression<string>>;
    /**
     * before compile plugins.
     *
     * @type {Binding<NodeExpression<Plugin[]>>}
     * @memberof RollupTsOption
     */
    beforeCompilePlugins?: Binding<NodeExpression<Plugin[]>>;
    /**
     * tscompile rollup plugin.
     *
     * @type {Binding<NodeExpression<Plugin>>}
     * @memberof RollupTsOption
     */
    tscompile?: Binding<NodeExpression<Plugin>>;
    uglify: Binding<NodeExpression<boolean | Plugin>>;
    /**
     * after ts compile rollup plugins.
     *
     * @type {NodeExpression<Plugin[]>}
     * @memberof RollupOption
     */
    afterCompilePlugins?: Binding<NodeExpression<Plugin[]>>;
}
export declare class RollupTsActivity extends RollupActivity {
    beforeCompile: NodeExpression<Plugin[]>;
    tscompile: NodeExpression<Plugin>;
    afterCompile: NodeExpression<Plugin[]>;
    includeLib: string[];
    annotation: NodeExpression<boolean>;
    include: NodeExpression<string[]>;
    exclude: NodeExpression<string[]>;
    dts: NodeExpression<string>;
    tsconfig: NodeExpression<string>;
    compileOptions?: NodeExpression<CompilerOptions>;
    uglify: NodeExpression<boolean | Plugin>;
    private exeCache;
    execute(ctx: NodeActivityContext): Promise<void>;
    protected getInputProps(): string[];
    protected vailfExternal(external: string[]): string[];
    protected setOptions(ctx: NodeActivityContext, opts: RollupOptions, key: string, val: any): void;
    protected resolvePlugins(ctx: NodeActivityContext, opts: RollupOptions): Promise<void>;
    getDefaultTsCompiler(ctx: NodeActivityContext): Promise<Plugin>;
    static ρAnn(): any;
}
