import { Binding } from '@tsdi/components';
import { TemplateOption, Src } from '@tsdi/activities';
import { CompilerOptions } from 'typescript';
import { NodeExpression, NodeActivityContext } from '../NodeActivityContext';
import { NodeActivity } from '../NodeActivity';
/**
 * tsc build option.
 */
export interface TscBuilderOption extends TemplateOption {
    /**
     * tsconfig.
     *
     * @type {Binding<NodeExpression<string>>}
     * @memberof TscCompileActivityConfig
     */
    tsconfig?: Binding<NodeExpression<string>>;
    /**
     * ts file source.
     *
     * @type {CBinding<NodeExpression<Src>>}
     * @memberof TscCompileActivityConfig
     */
    src?: Binding<NodeExpression<Src>>;
    /**
     * ts compile out dir.
     *
     * @type {Binding<NodeExpression<string>>}
     * @memberof TscCompileActivityConfig
     */
    dist?: Binding<NodeExpression<string>>;
    /**
     * compiler options.
     *
     * @type {Binding<NodeExpression<CompilerOptions>>}
     * @memberof TscCompileActivityConfig
     */
    compilerOptions?: Binding<NodeExpression<CompilerOptions>>;
}
export declare class TscBuilder extends NodeActivity<void> {
    src: NodeExpression<Src>;
    dist: NodeExpression<string>;
    tsconfig: NodeExpression<string>;
    compilerOptions: NodeExpression<CompilerOptions>;
    execute(ctx: NodeActivityContext): Promise<void>;
    formatCompileOptions(options: CompilerOptions): string;
    static ρAnn(): any;
}
