/**
 * Resolve a filename relative to a directory with security checks.
 * Rejects empty dir, absolute filenames, path traversal, and symlink escapes.
 *
 * Relative `dir` arguments are resolved against the *module directory*
 * (the directory of the compiled JS of the Agency module that initiated
 * this run), not `process.cwd()`. This matches what users want when
 * they ship a co-located resource bundle (`prompts/`, `fixtures/`, etc.)
 * next to their `.agency` file. Absolute `dir` arguments are unaffected
 * because `path.resolve` returns them unchanged. `~` and other
 * shorthand prefixes are expanded at the dir level via `resolveDir`
 * (which itself delegates to `expandPath`) — the `filename` argument
 * is NOT expanded because absolute / `~`-prefixed filenames are
 * rejected anyway.
 *
 * Outside an Agency execution frame, `resolveDir` falls back to
 * `process.cwd()`, preserving the previous behaviour for standalone
 * test invocations.
 */
export declare function resolvePath(dir: string, filename: string): Promise<string>;
