/**
 * @module utils/project-resolver
 *
 * Single resolver for "where is the timeline file?" The CLI accepts three
 * input shapes:
 *
 *   1. Direct file path: passed through as-is.
 *   2. Directory: looks for `timeline.json` first (canonical),
 *      falls back to an existing `project.vibe.json` (legacy).
 *   3. Non-existent path: passed through so the caller surfaces the error.
 *
 * `detectSceneProject(dir)` answers "is this a scene project directory?"
 * (i.e. has `vibe.config.json` or legacy `vibe.project.yaml`). Used to give a useful error when the
 * user runs `vibe timeline info` on a scene directory.
 */
export declare const TIMELINE_FILENAME = "timeline.json";
export declare const LEGACY_TIMELINE_FILENAME = "project.vibe.json";
export declare const SCENE_CONFIG_FILENAME = "vibe.config.json";
export declare const LEGACY_SCENE_CONFIG_FILENAME = "vibe.project.yaml";
/**
 * Resolve `inputPath` to a concrete timeline file path.
 *
 * Directory inputs prefer `timeline.json`; if absent, fall back to an existing
 * legacy `project.vibe.json`. Empty directories resolve to `timeline.json` so
 * the caller surfaces a canonical missing-file error. File inputs and unknown
 * paths pass through unchanged.
 */
export declare function resolveTimelineFile(inputPath: string, cwd?: string): Promise<string>;
/** True when the directory contains `vibe.config.json` or legacy `vibe.project.yaml`. */
export declare function detectSceneProject(dir: string): Promise<boolean>;
