/** * Validate a channel session folder name. * * We allow nested relative paths (e.g. "guild/general") but reject empty, * absolute, and traversing paths so channel state always stays under * config.sessionsDir. */ export declare function validateSessionFolder(folder: string): string; /** Resolve a channel session folder to an absolute directory under sessionsDir. */ export declare function resolveChannelSessionDir(folder: string): string; /** Resolve a media directory for a message under a validated channel session directory. */ export declare function resolveChannelMediaMessageDir(folder: string, messageId: string): string; /** Rotate a channel session directory out of the active path without deleting it. */ export declare function rotateChannelSessionDir(folder: string): string | undefined; /** Resolve the most recent active session file for a channel, if one exists. */ export declare function resolveLatestChannelSessionFile(folder: string): string | undefined; /** Read the session creation timestamp from the metadata record at the start of a session file. */ export declare function readSessionCreatedAt(sessionFile: string): string | undefined;