import { CoreModels } from 'tnp-core/lib';
import { BaseFeatureForProject } from 'tnp-helpers/lib';
import { EnvOptions } from '../../../../../options';
import { DevMode } from '../../../../abstract/taon-worker/dev-mode/dev-mode.models';
import { Project } from '../../../project';
import { BuildLeader } from './build-leader-process';
import { TaonStateMachine } from './taon-build-state-machine';
export declare class TaonBuildObserver extends BaseFeatureForProject<Project> {
    leader: BuildLeader;
    toNotifyLeaderPort: number;
    private allowedStateMap;
    effect: (buildType: CoreModels.BuildType, nextState: DevMode.ProjectBuildStatus, currentState: DevMode.ProjectBuildStatus, debugMode: boolean) => void;
    dirtyBuild: Map<CoreModels.BuildWatcherType, boolean>;
    writeBuildStatus: (() => void) & import("lodash").Cancelable;
    private notifyLeaderAboutBuildDone;
    modifyStateBeforeSetting: (buildType: CoreModels.BuildType, nextState: DevMode.ProjectBuildStatus, currentState: DevMode.ProjectBuildStatus) => DevMode.ProjectBuildStatus;
    private debouceUpdate;
    backendCjsState: TaonStateMachine<DevMode.ProjectBuildStatus>;
    backendEsmState: TaonStateMachine<DevMode.ProjectBuildStatus>;
    backendJsMapsState: TaonStateMachine<DevMode.ProjectBuildStatus>;
    browserState: TaonStateMachine<DevMode.ProjectBuildStatus>;
    websqlState: TaonStateMachine<DevMode.ProjectBuildStatus>;
    errorBackend: TaonStateMachine<string>;
    errorBrowser: TaonStateMachine<string>;
    errorWebsql: TaonStateMachine<string>;
    states: Map<CoreModels.BuildType, TaonStateMachine<DevMode.ProjectBuildStatus>>;
    stateError: Map<"browser-watcher-error" | "websql-watcher-error" | "backend-watcher-error", TaonStateMachine<string>>;
    get buildStatusInfo(): DevMode.BuildStatusInfo;
    constructor(project: Project);
    private mergeStatus;
    /**
     * errors or non-watch mode needs to for instant predictable updates
     */
    updateAction(info?: DevMode.BuildStatusInfo): Promise<void>;
    start(envOptions: EnvOptions): void;
    private get anyBackendError();
    private get anyBrowserError();
    private get anyWebsqlError();
}
