/** * Cross-Platform File Permissions Utility * * Provides secure file permission handling across Linux, macOS, and Windows. * * On Unix systems (Linux/macOS): * - Uses standard chmod-style permissions (0o600, 0o700, etc.) * * On Windows: * - Uses icacls to restrict file access to current user only * - Falls back gracefully if icacls fails * * Added by Pantheon Security for cross-platform support. */ /// /// /** * Platform detection */ export declare const isWindows: boolean; export declare const isMacOS: boolean; export declare const isLinux: boolean; export declare const isUnix: boolean; /** * Common permission modes (Unix-style) */ export declare const PERMISSION_MODES: { /** Owner read/write only (files with sensitive data) */ readonly OWNER_READ_WRITE: 384; /** Owner read/write/execute only (directories, executables) */ readonly OWNER_FULL: 448; /** Owner read/write, group/others read (less sensitive files) */ readonly OWNER_WRITE_ALL_READ: 420; /** Owner full, group/others read+execute (less sensitive directories) */ readonly OWNER_FULL_ALL_READ_EXECUTE: 493; }; /** * Set secure file permissions (owner-only access) * * @param filePath - Path to the file * @param mode - Unix permission mode (default: 0o600) * @returns true if permissions were set successfully */ export declare function setSecureFilePermissions(filePath: string, mode?: number): boolean; /** * Set secure directory permissions (owner-only access) * * @param dirPath - Path to the directory * @param mode - Unix permission mode (default: 0o700) * @returns true if permissions were set successfully */ export declare function setSecureDirectoryPermissions(dirPath: string, mode?: number): boolean; /** * Create a directory with secure permissions * * @param dirPath - Path to create * @param mode - Unix permission mode (default: 0o700) */ export declare function mkdirSecure(dirPath: string, mode?: number): void; /** * Write a file with secure permissions * * @param filePath - Path to write * @param content - Content to write * @param mode - Unix permission mode (default: 0o600) */ export declare function writeFileSecure(filePath: string, content: string | Buffer, mode?: number): void; /** * Append to a file with secure permissions * * @param filePath - Path to append to * @param content - Content to append * @param mode - Unix permission mode (default: 0o600) */ export declare function appendFileSecure(filePath: string, content: string | Buffer, mode?: number): void; /** * Get platform information for logging/debugging */ export declare function getPlatformInfo(): { platform: string; isWindows: boolean; isMacOS: boolean; isLinux: boolean; supportsUnixPermissions: boolean; supportsWindowsACLs: boolean; };