/**
 * BackendExecutionEnvironment — implements IExecutionEnvironment
 * by routing all filesystem and process operations through the onebox API
 * to Docker exec on the target container.
 */
import * as interfaces from '../../dist_ts_interfaces/index.js';
type IExecutionEnvironment = import('@design.estate/dees-catalog').IExecutionEnvironment;
type IFileEntry = import('@design.estate/dees-catalog').IFileEntry;
type IFileWatcher = import('@design.estate/dees-catalog').IFileWatcher;
type IProcessHandle = import('@design.estate/dees-catalog').IProcessHandle;
type IWorkspaceShellCommand = interfaces.requests.IWorkspaceShellCommand;
export declare class BackendExecutionEnvironment implements IExecutionEnvironment {
    private serviceName;
    readonly type: "backend";
    private _ready;
    private identity;
    private processRouter;
    private processSocket;
    private processSocketPromise;
    private processStates;
    constructor(serviceName: string, identity: interfaces.data.IIdentity);
    get ready(): boolean;
    init(): Promise<void>;
    destroy(): Promise<void>;
    readFile(path: string): Promise<string>;
    writeFile(path: string, contents: string): Promise<void>;
    readDir(path: string): Promise<IFileEntry[]>;
    mkdir(path: string): Promise<void>;
    rm(path: string, options?: {
        recursive?: boolean;
    }): Promise<void>;
    exists(path: string): Promise<boolean>;
    watch(_path: string, _callback: (event: 'rename' | 'change', filename: string | null) => void, _options?: {
        recursive?: boolean;
    }): IFileWatcher;
    spawn(command: string, args?: string[]): Promise<IProcessHandle>;
    getShellCommand(): Promise<IWorkspaceShellCommand>;
    private registerProcessSocketHandlers;
    private ensureProcessSocket;
    private completeProcessState;
    private killProcess;
    /**
     * Helper to fire TypedRequests to the workspace API
     */
    private fireRequest;
}
export {};
