/**
 * Run-name index: the join between a `agents run --name <slug>` handle and the
 * session id of the run it named.
 *
 * `agents run` records `<sessionId>.json` here at launch whenever both a name
 * and a session id are known up front (Claude pre-mints its id — see spawnAgent;
 * a teams teammate's Claude session id is its agent id). The session-discovery
 * pass reads these sidecars and SEEDS the session label by id (via
 * seedLabelsFromNames) — the launch handle becomes the label, refined later by an
 * agent-generated title. Idempotent and re-applied every scan, so seeds survive
 * transcript rescans without being parsed out of the transcript itself.
 *
 * Mirrors the host-task sidecar convention (`~/.agents/.cache/hosts/<id>.json`),
 * one small JSON per run under `~/.agents/.cache/run-names/`.
 */
export interface RunNameRecord {
    sessionId: string;
    name: string;
    agent: string;
    cwd?: string;
    ts: number;
}
export declare function runNamesDir(): string;
/**
 * Record a run's `--name` handle keyed by its session id. Best-effort: a failed
 * write must never break the run itself. No-op without both a name and id.
 */
export declare function recordRunName(rec: Omit<RunNameRecord, 'ts'>): void;
/**
 * Build the sessionId → name map from every run-name sidecar, for
 * seedLabelsFromNames to apply onto the index as label seeds. Returns an empty
 * map when the dir doesn't exist yet.
 */
export declare function buildRunNameMap(): Map<string, string | null>;
