import { CoreModels__NS__BuildType, CoreModels__NS__BuildWatcherType } from 'tnp-core/lib-prod';
import { BaseFeatureForProject } from 'tnp-helpers/lib-prod';
import { EnvOptions } from '../../../../../options';
import { DevMode__NS__BuildStatusInfo, DevMode__NS__ProjectBuildStatus } 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__NS__BuildType, nextState: DevMode__NS__ProjectBuildStatus, currentState: DevMode__NS__ProjectBuildStatus, debugMode: boolean) => void;
    dirtyBuild: Map<CoreModels__NS__BuildWatcherType, boolean>;
    writeBuildStatus: (() => void) & import("lodash").Cancelable;
    private notifyLeaderAboutBuildDone;
    modifyStateBeforeSetting: (buildType: CoreModels__NS__BuildType, nextState: DevMode__NS__ProjectBuildStatus, currentState: DevMode__NS__ProjectBuildStatus) => DevMode__NS__ProjectBuildStatus;
    private debouceUpdate;
    backendCjsState: TaonStateMachine<DevMode__NS__ProjectBuildStatus>;
    backendEsmState: TaonStateMachine<DevMode__NS__ProjectBuildStatus>;
    backendJsMapsState: TaonStateMachine<DevMode__NS__ProjectBuildStatus>;
    browserState: TaonStateMachine<DevMode__NS__ProjectBuildStatus>;
    websqlState: TaonStateMachine<DevMode__NS__ProjectBuildStatus>;
    errorBackend: TaonStateMachine<string>;
    errorBrowser: TaonStateMachine<string>;
    errorWebsql: TaonStateMachine<string>;
    states: Map<CoreModels__NS__BuildType, TaonStateMachine<DevMode__NS__ProjectBuildStatus>>;
    stateError: Map<"browser-watcher-error" | "websql-watcher-error" | "backend-watcher-error", TaonStateMachine<string>>;
    get buildStatusInfo(): DevMode__NS__BuildStatusInfo;
    constructor(project: Project);
    private mergeStatus;
    /**
     * errors or non-watch mode needs to for instant predictable updates
     */
    updateAction(info?: DevMode__NS__BuildStatusInfo): Promise<void>;
    start(envOptions: EnvOptions): void;
    private get anyBackendError();
    private get anyBrowserError();
    private get anyWebsqlError();
}
