import { TaonBaseClass } from 'taon/lib-prod';
import { CoreModels__NS__BuildType, CoreModels__NS__BuildWatcherErrorType, CoreModels__NS__FrameworkVersion } from 'tnp-core/lib-prod';
export declare const DevMode__NS__MAX_NUMBER_OF_CONCURENT_BUILDS = 1;
export declare enum DevMode__NS__ProjectBuildStatus {
    /**
     * External command to cancel build (TODO implement killing of processes)
     */
    __CANCEL_BUILD__ = "__CANCEL_BUILD__",
    /**
     * External command to start building (or repeat build if build active)
     */
    __START_BUILD__ = "__START_BUILD__",
    /**
     * 1. default state of porject
     */
    NOT_STARTED = "NOT_STARTED",
    /**
     * Each project is immediatlly building because of BehaviorSubject()
     */
    BUILDING = "BUILDING",
    /**
     * Cancelled build of project (but still building - I am not killing processes)
     */
    BUILDING_BUT_CANCELLED = "BUILDING_BUT_CANCELLED",
    /**
     * Auto rebuild of project at the end of building
     */
    BUILDING_WITH_REBUILD_AT_THE_END = "BUILDING_WITH_REBUILD_AT_THE_END",
    /**
     * Done building
     */
    DONE_BUILDING_SUCCESS = "DONE_BUILDING_SUCCESS",
    /**
     * Cancelled build of project (process idle)
     */
    BUILD_CANCEL_DONE = "BUILD_CANCEL_DONE",
    /**
     * Build error.
     */
    COMPILATION_ERROR = "COMPILATION_ERROR"
}
export type DevMode__NS__BuildStatusInfo = {
    [key in CoreModels__NS__BuildType]: DevMode__NS__ProjectBuildStatus;
} & {
    [key in CoreModels__NS__BuildWatcherErrorType]?: string | undefined;
};
export declare class DevMode__NS__ProjectBuildNotificaiton extends TaonBaseClass {
    static from(json: Partial<DevMode__NS__ProjectBuildNotificaiton>): DevMode__NS__ProjectBuildNotificaiton;
    isEqual(build: DevMode__NS__ProjectBuildNotificaiton): boolean;
    private get allStatusValues();
    private everyBuildsWithStatus;
    private anyBuildsWithStatus;
    get allBuildsSucceed(): boolean;
    get someBuildsFailed(): boolean;
    get uniqueKey(): string;
    get isWatchBuild(): boolean;
    buildStatusInfo?: DevMode__NS__BuildStatusInfo;
    name?: string;
    buildType?: 'watch' | 'normal';
    nameForNpmPackage?: string;
    coreContainerVersion?: CoreModels__NS__FrameworkVersion;
    port?: string | number;
    location?: string;
    devModeDependenciesNames?: string[];
}
