import { TaonBaseKvRepository } from 'taon/lib-prod';
import { CoreModels__NS__BuildType, CoreModels__NS__BuildWatcherType, CoreModels__NS__FrameworkVersion } from 'tnp-core/lib-prod';
import { DevBuildController } from '../dev-build/dev-build.controller';
import { DevMode__NS__ProjectBuildNotificaiton } 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__NS__ProjectBuildNotificaiton[];
    };
    requiredToBeInLeadBuild: {
        [frameworkVersion: string]: DevMode__NS__ProjectBuildNotificaiton[];
    };
    currentLeadProject?: DevMode__NS__ProjectBuildNotificaiton;
    frameworkVersions: CoreModels__NS__FrameworkVersion[];
    shouldBeRebuild: {
        [frameworkVersion: string]: {
            [key in CoreModels__NS__BuildWatcherType]: boolean;
        };
    };
}> {
    private logMessages;
    private contexts;
    finishLeadBuildAndUnregisterLeadProject(body: DevMode__NS__ProjectBuildNotificaiton): Promise<boolean>;
    private getDepsTreeFor;
    getWhatShouldBeRebuild(body: DevMode__NS__ProjectBuildNotificaiton): Promise<{
        [key in CoreModels__NS__BuildType]: boolean;
    }>;
    setAsLeadProjectAndReturnDependcies(projectRequestestingLeadPos: DevMode__NS__ProjectBuildNotificaiton, dirtyBuild: {
        [key in CoreModels__NS__BuildWatcherType]: boolean;
    }): Promise<DevMode__NS__ProjectBuildNotificaiton[]>;
    checkIfStillBuildLeader(body: DevMode__NS__ProjectBuildNotificaiton): Promise<boolean>;
    private updatePoolOfDevProjects;
    private deleteContextByPort;
    deleteFromPool(projectsToDelete: DevMode__NS__ProjectBuildNotificaiton | DevMode__NS__ProjectBuildNotificaiton[]): Promise<DevMode__NS__ProjectBuildNotificaiton[]>;
    addToRequireBuilds(projects: DevMode__NS__ProjectBuildNotificaiton[], frameworkVersion: CoreModels__NS__FrameworkVersion): Promise<DevMode__NS__ProjectBuildNotificaiton[]>;
    updatePool(body: DevMode__NS__ProjectBuildNotificaiton): Promise<DevMode__NS__ProjectBuildNotificaiton[]>;
    getDevBuildControllerForPort(port: number | string): Promise<DevBuildController>;
    private childQuickHealthCheck;
    getAllFrameworkVersionInDevMode(): Promise<CoreModels__NS__FrameworkVersion[]>;
    getPoolOfDevModePorjects(frameworkVersion: CoreModels__NS__FrameworkVersion): Promise<DevMode__NS__ProjectBuildNotificaiton[]>;
    getAllLogMessage(): string[];
    pathToLog: string;
    debouceWriteLog: (() => void) & import("lodash").Cancelable;
    private addMessage;
    clearMessage(): void;
    protected useInMemoryDB(): boolean;
    scanAndAddExitingProcesses(): Promise<void>;
    _(): Promise<void>;
}
