import { BoringCache } from 'boring-cache';
import { CreateWorkspaceOptions, RawWorkspaceProject, WorkspaceMetadata, WorkspaceStatusWithPullMergeRequestInfo } from '../../../../bld/shared';
import { Config } from '../config';
import { WorkspaceFiles } from './@workspace-files';
export declare function PROJECT_CONFIG_PATH(config: Config, workspace: WorkspaceMetadata, project: RawWorkspaceProject): string;
export interface DaemonStorageData {
    workspaces?: WorkspaceMetadata[];
}
export declare class Daemon {
    private config;
    private storage;
    readonly workspaceFiles: WorkspaceFiles;
    private dockerComposeUpPromise;
    constructor(config: Config, storage: BoringCache<DaemonStorageData>);
    private get workspaces();
    isWorkspaceReady(id: string): Promise<boolean>;
    getWorkspaceStatuses(): Promise<WorkspaceStatusWithPullMergeRequestInfo[]>;
    createWorkspace(options: CreateWorkspaceOptions): Promise<string>;
    updateWorkspace(workspace: WorkspaceMetadata): Promise<void>;
    deleteWorkspace(id: string): Promise<void>;
    retrieveWorkspaceLog(id: string): Promise<string>;
    private getInPlaceProjectConfig;
    private update;
    private dockerComposeUp;
}
