import { Variable, OperationLog, AuditConfig } from '../types.js'; export declare class StorageManager { private storePath; readonly encrypted: boolean; private password?; private cache; private maxBackups; constructor(storePath: string, encrypted?: boolean, maxBackups?: number); setPassword(password: string): void; load(): Promise>; save(variables: Record): Promise; private rotateBackups; private tryRestoreFromBackup; get(name: string): Promise; set(name: string, variable: Variable): Promise; delete(name: string): Promise; list(): Promise; exists(): Promise; invalidateCache(): void; verify(): Promise<{ valid: boolean; error?: string; count?: number; backups?: number; }>; destroy(): void; } export interface LogFilter { date?: string; operation?: string; variable?: string; source?: string; success?: boolean; tail?: number; } /** * Resolve the absolute directory to store audit logs in. * * Honors `audit.log_path` with these forms: * - unset → default `/.envcp/logs` (backward compatible) * - "project:REL" → `/REL` * - starts with `~` → expanded against $HOME (or projectPath if unavailable) * - absolute path → used as-is * - relative path → treated as project-relative * * Rejects `..` traversal in the `project:` form. */ export declare function resolveLogPath(audit: AuditConfig | undefined, projectPath: string): string; export declare class LogManager { private logDir; private readonly auditConfig; private hmacKey; private lastHmac; private chainIndex; private chainLoaded; constructor(logDir: string, auditConfig?: AuditConfig); init(): Promise; private loadLastChainState; private loadOrCreateHmacKey; private signEntry; verifyEntry(entry: OperationLog): boolean; verifyLogChain(date?: string): Promise<{ valid: boolean; entries: number; tampered: number[]; }>; private applyFieldFilter; pruneOldLogs(retainDays?: number): Promise; log(entry: OperationLog): Promise; getLogs(filter?: LogFilter): Promise; private execChattr; setAppendOnly(filePath: string): Promise; setImmutable(filePath: string): Promise; removeAppendOnly(filePath: string): Promise; removeImmutable(filePath: string): Promise; protectLogFiles(): Promise<{ protected: string[]; failed: string[]; }>; getLogDates(): Promise; destroy(): void; } //# sourceMappingURL=index.d.ts.map