import * as d from '../../declarations';
/**
 * A new BuildCtx object is created for every build
 * and rebuild.
 */
export declare class BuildContext implements d.BuildCtx {
    private config;
    private compilerCtx;
    buildId: number;
    buildMessages: string[];
    buildResults: d.BuildResults;
    bundleBuildCount: number;
    collections: d.Collection[];
    completedTasks: d.BuildTask[];
    components: d.ComponentCompilerMeta[];
    componentGraph: Map<string, string[]>;
    data: any;
    diagnostics: d.Diagnostic[];
    dirsAdded: string[];
    dirsDeleted: string[];
    entryModules: d.EntryModule[];
    filesAdded: string[];
    filesChanged: string[];
    filesDeleted: string[];
    filesUpdated: string[];
    filesWritten: string[];
    globalStyle: string;
    hasConfigChanges: boolean;
    hasFinished: boolean;
    hasHtmlChanges: boolean;
    hasPrintedResults: boolean;
    hasServiceWorkerChanges: boolean;
    hasScriptChanges: boolean;
    hasStyleChanges: boolean;
    hydrateAppFilePath: string;
    indexBuildCount: number;
    indexDoc: Document;
    isRebuild: boolean;
    moduleFiles: d.Module[];
    packageJson: d.PackageJsonData;
    packageJsonFilePath: string;
    pendingCopyTasks: Promise<d.CopyResults>[];
    requiresFullBuild: boolean;
    scriptsAdded: string[];
    scriptsDeleted: string[];
    startTime: number;
    styleBuildCount: number;
    stylesPromise: Promise<void>;
    stylesUpdated: d.BuildStyleUpdate[];
    timeSpan: d.LoggerTimeSpan;
    timestamp: string;
    transpileBuildCount: number;
    validateTypesPromise: Promise<d.ValidateTypesResults>;
    constructor(config: d.Config, compilerCtx: d.CompilerCtx);
    start(): void;
    createTimeSpan(msg: string, debug?: boolean): {
        duration: () => number;
        finish: (finishedMsg: string, color?: string, bold?: boolean, newLineSuffix?: boolean) => number;
    };
    debug(msg: string): void;
    readonly hasError: boolean;
    readonly hasWarning: boolean;
    abort(): Promise<d.BuildResults>;
    finish(): Promise<d.BuildResults>;
    progress(t: d.BuildTask): void;
    validateTypesBuild(): Promise<void>;
}
export declare function getBuildTimestamp(): string;
export declare const ProgressTask: {
    emptyOutputTargets: {};
    transpileApp: {};
    generateStyles: {};
    generateOutputTargets: {};
    validateTypesBuild: {};
    writeBuildFiles: {};
};
