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;
    appFileBuildCount: number;
    buildId: number;
    buildMessages: string[];
    buildResults: d.BuildResults;
    bundleBuildCount: number;
    collections: d.Collection[];
    components: d.ComponentCompilerMeta[];
    data: any;
    indexDoc: Document;
    diagnostics: d.Diagnostic[];
    dirsAdded: string[];
    dirsDeleted: string[];
    entryModules: d.EntryModule[];
    filesAdded: string[];
    filesChanged: string[];
    filesDeleted: string[];
    filesUpdated: string[];
    filesWritten: string[];
    skipAssetsCopy: boolean;
    global: d.Module;
    graphData: d.GraphData;
    hasConfigChanges: boolean;
    hasCopyChanges: boolean;
    hasFinished: boolean;
    hasIndexHtmlChanges: boolean;
    hasPrintedResults: boolean;
    hasServiceWorkerChanges: boolean;
    hasScriptChanges: boolean;
    hasSlot: boolean;
    hasStyleChanges: boolean;
    hasSvg: boolean;
    hydrateAppFilePath: string;
    indexBuildCount: number;
    isRebuild: boolean;
    moduleFiles: d.Module[];
    requiresFullBuild: boolean;
    scriptsAdded: string[];
    scriptsDeleted: string[];
    startTime: number;
    styleBuildCount: number;
    stylesPromise: Promise<void>;
    stylesUpdated: d.BuildStyleUpdate[];
    timeSpan: d.LoggerTimeSpan;
    timestamp: string;
    transpileBuildCount: number;
    pendingCopyTasks: Promise<d.CopyResults>[];
    validateTypesPromise: Promise<d.ValidateTypesResults>;
    constructor(config: d.Config, compilerCtx: d.CompilerCtx);
    start(): void;
    createTimeSpan(msg: string, debug?: boolean): {
        finish: (finishedMsg: string, color?: string, bold?: boolean, newLineSuffix?: boolean) => number;
    };
    debug(msg: string): void;
    readonly isActiveBuild: boolean;
    readonly hasError: boolean;
    readonly shouldAbort: boolean;
    readonly hasWarning: boolean;
    abort(): Promise<d.BuildResults>;
    finish(): Promise<d.BuildResults>;
    validateTypesBuild(): Promise<void>;
}
export declare function getBuildTimestamp(): string;
