import { TaonBaseKvRepository } from 'taon';
import { CoreModels } from 'tnp-core';
import { DevBuildController } from '../dev-build/dev-build.controller';
import { DevMode } from './dev-mode.models';
export declare class DevModeRepository extends TaonBaseKvRepository<{
    /**
     * hot updated list of watch and non-watch projects
     * currenlty being in dev-mode
     */
    poolOfDevModeProjects: {
        [frameworkVersion: string]: DevMode.ProjectBuildNotificaiton[];
    };
    requiredToBeInLeadBuild: {
        [frameworkVersion: string]: DevMode.ProjectBuildNotificaiton[];
    };
    currentLeadProject?: DevMode.ProjectBuildNotificaiton;
    frameworkVersions: CoreModels.FrameworkVersion[];
    shouldBeRebuild: {
        [frameworkVersion: string]: {
            [key in CoreModels.BuildWatcherType]: boolean;
        };
    };
}> {
    private logMessages;
    private contexts;
    finishLeadBuildAndUnregisterLeadProject(body: DevMode.ProjectBuildNotificaiton): Promise<boolean>;
    private getDepsTreeFor;
    getWhatShouldBeRebuild(body: DevMode.ProjectBuildNotificaiton): Promise<{
        [key in CoreModels.BuildType]: boolean;
    }>;
    setAsLeadProjectAndReturnDependcies(projectRequestestingLeadPos: DevMode.ProjectBuildNotificaiton, dirtyBuild: {
        [key in CoreModels.BuildWatcherType]: boolean;
    }): Promise<DevMode.ProjectBuildNotificaiton[]>;
    checkIfStillBuildLeader(body: DevMode.ProjectBuildNotificaiton): Promise<boolean>;
    private updatePoolOfDevProjects;
    private deleteContextByPort;
    deleteFromPool(projectsToDelete: DevMode.ProjectBuildNotificaiton | DevMode.ProjectBuildNotificaiton[]): Promise<DevMode.ProjectBuildNotificaiton[]>;
    addToRequireBuilds(projects: DevMode.ProjectBuildNotificaiton[], frameworkVersion: CoreModels.FrameworkVersion): Promise<DevMode.ProjectBuildNotificaiton[]>;
    updatePool(body: DevMode.ProjectBuildNotificaiton): Promise<DevMode.ProjectBuildNotificaiton[]>;
    getDevBuildControllerForPort(port: number | string): Promise<DevBuildController>;
    private childQuickHealthCheck;
    getAllFrameworkVersionInDevMode(): Promise<CoreModels.FrameworkVersion[]>;
    getPoolOfDevModePorjects(frameworkVersion: CoreModels.FrameworkVersion): Promise<DevMode.ProjectBuildNotificaiton[]>;
    getAllLogMessage(): string[];
    pathToLog: string;
    debouceWriteLog: (() => void) & import("lodash").Cancelable;
    private addMessage;
    clearMessage(): void;
    protected useInMemoryDB(): boolean;
    scanAndAddExitingProcesses(): Promise<void>;
    _(): Promise<void>;
}