import { Effect, Context, Layer } from "effect"; /** * Directory Management Service * * Handles creation and management of user home directories, * Claude Code configurations, and workspace setup for isolated * multi-user environments. * * Directory Structure: * /home/{username}/ * ├── .claude/ # Claude Code configuration * │ ├── config.json # User-specific Claude settings * │ ├── sessions/ # Session storage * │ └── cache/ # Cache directory * ├── workspace/ # User's workspace directory * └── .bashrc # Shell configuration */ export interface DirectorySetupOptions { username: string; homeDir: string; uid: number; gid: number; claudeConfig?: ClaudeConfig; } export interface ClaudeConfig { apiKey?: string; model?: string; maxTokens?: number; temperature?: number; } export interface DirectoryError { readonly _tag: "DirectoryError"; readonly message: string; readonly cause?: unknown; } declare const DirectoryService_base: Context.TagClass Effect.Effect; /** * Create Claude Code configuration directory */ readonly createClaudeConfig: (homeDir: string, config: ClaudeConfig, uid: number, gid: number) => Effect.Effect; /** * Create user workspace directory */ readonly createWorkspace: (homeDir: string, uid: number, gid: number) => Effect.Effect; /** * Set proper ownership and permissions */ readonly setOwnership: (dirPath: string, uid: number, gid: number, recursive?: boolean) => Effect.Effect; /** * Clean up user directories */ readonly cleanupDirectories: (homeDir: string) => Effect.Effect; }>; export declare class DirectoryService extends DirectoryService_base { static Live: Layer.Layer; } export {}; //# sourceMappingURL=DirectoryService.d.ts.map