/**
 * Session path utilities for ElizaOS.
 *
 * Provides functions for resolving session-related file paths including
 * session stores, transcripts, and agent-specific directories.
 *
 * @module sessions/paths
 */
import type { SessionEntry } from "./types.js";
/**
 * Resolve the Eliza state directory.
 *
 * Uses ELIZA_STATE_DIR env var, falling back to ~/.eliza
 *
 * @param env - Environment variables (defaults to process.env)
 * @param homedir - Homedir function (defaults to os.homedir)
 * @returns Absolute path to state directory
 */
export declare function resolveStateDir(env?: NodeJS.ProcessEnv, homedir?: () => string): string;
/**
 * Resolve the sessions directory for an agent.
 *
 * @param agentId - Agent identifier (defaults to "main")
 * @param env - Environment variables
 * @param homedir - Homedir function
 * @returns Absolute path to agent sessions directory
 */
export declare function resolveAgentSessionsDir(agentId?: string, env?: NodeJS.ProcessEnv, homedir?: () => string): string;
/**
 * Resolve the transcripts directory for the default agent.
 *
 * @param env - Environment variables
 * @param homedir - Homedir function
 * @returns Absolute path to transcripts directory
 */
export declare function resolveSessionTranscriptsDir(env?: NodeJS.ProcessEnv, homedir?: () => string): string;
/**
 * Resolve the transcripts directory for a specific agent.
 *
 * @param agentId - Agent identifier
 * @param env - Environment variables
 * @param homedir - Homedir function
 * @returns Absolute path to agent transcripts directory
 */
export declare function resolveSessionTranscriptsDirForAgent(agentId?: string, env?: NodeJS.ProcessEnv, homedir?: () => string): string;
/**
 * Resolve the default session store path for an agent.
 *
 * @param agentId - Agent identifier (defaults to "main")
 * @returns Absolute path to sessions.json
 */
export declare function resolveDefaultSessionStorePath(agentId?: string): string;
/**
 * Resolve a session store path with optional template expansion.
 *
 * Supports:
 * - `{agentId}` placeholder in path
 * - `~` expansion for home directory
 * - Defaults to standard sessions.json location
 *
 * @param store - Custom store path (optional)
 * @param opts - Options including agentId
 * @returns Resolved absolute path
 */
export declare function resolveStorePath(store?: string, opts?: {
    agentId?: string;
}): string;
/**
 * Resolve the path to a session transcript file.
 *
 * @param sessionId - Session identifier
 * @param agentId - Agent identifier (defaults to "main")
 * @param topicId - Optional topic ID for topic-specific transcripts
 * @returns Absolute path to transcript .jsonl file
 */
export declare function resolveSessionTranscriptPath(sessionId: string, agentId?: string, topicId?: string | number): string;
/**
 * Resolve the path to a session file.
 *
 * Uses the entry's sessionFile if set, otherwise falls back to
 * the default transcript path.
 *
 * @param sessionId - Session identifier
 * @param entry - Optional session entry with sessionFile
 * @param opts - Options including agentId
 * @returns Absolute path to session file
 */
export declare function resolveSessionFilePath(sessionId: string, entry?: SessionEntry, opts?: {
    agentId?: string;
}): string;
/**
 * Check if a path is within the Eliza state directory.
 *
 * @param filePath - Path to check
 * @returns True if path is within state directory
 */
export declare function isWithinStateDir(filePath: string): boolean;
/**
 * Ensure a path is safe to use for session storage.
 *
 * @param filePath - Path to validate
 * @returns Resolved path if safe
 * @throws Error if path is outside state directory
 */
export declare function ensureSafeSessionPath(filePath: string): string;
//# sourceMappingURL=paths.d.ts.map