import { Effect, Context, Layer } from "effect"; /** * Quota Management Service * * Manages disk quotas and resource limits for Linux users. * Provides storage limits to prevent individual users from * consuming excessive disk space. * * Features: * - Disk quota management (requires quota system on host) * - Directory size tracking * - Resource limit enforcement * - Usage monitoring */ export interface DiskQuota { softLimitMB: number; hardLimitMB: number; } export interface QuotaUsage { usedMB: number; softLimitMB: number; hardLimitMB: number; percentUsed: number; isOverSoftLimit: boolean; isOverHardLimit: boolean; } export interface QuotaError { readonly _tag: "QuotaError"; readonly message: string; readonly cause?: unknown; } declare const QuotaService_base: Context.TagClass Effect.Effect; /** * Get current quota usage for a user */ readonly getQuotaUsage: (username: string) => Effect.Effect; /** * Check if quota system is available */ readonly isQuotaAvailable: () => Effect.Effect; /** * Get directory size for a user (fallback if quota not available) */ readonly getDirectorySize: (dirPath: string) => Effect.Effect; /** * Enforce storage limits (alternative to disk quotas) */ readonly checkStorageLimit: (username: string, homeDir: string, limitMB: number) => Effect.Effect; }>; export declare class QuotaService extends QuotaService_base { static Live: Layer.Layer; } export {}; //# sourceMappingURL=QuotaService.d.ts.map