interface FileSystemTree {
    [path: string]: {
        file: {
            contents: string;
        };
    } | {
        directory: {
            contents: FileSystemTree;
        };
    };
}
interface SocketCallback {
    (response: {
        success: true;
        result?: any;
    } | {
        error: string;
    }): void;
}
interface ServerReadyEvent {
    port: number;
    url: string;
    localUrl?: string;
}
interface WebContainerEvents {
    'server-ready': (event: ServerReadyEvent) => void;
}
interface ProcessInfo {
    pid: number;
    command: string;
    args: string[];
    timestamp: number;
    terminalId?: string;
}
interface FileChangeEvent {
    type: 'create' | 'update' | 'delete';
    path: string;
}
interface WatchOptions {
    onChange: (event: FileChangeEvent) => void;
}

export type { FileChangeEvent, FileSystemTree, ProcessInfo, ServerReadyEvent, SocketCallback, WatchOptions, WebContainerEvents };
