import { type ReactNode } from "react"; import type { TimelineItem } from "./types.js"; /** * Host lookup from a session id to its current display title. Return null or * undefined when the session is unknown; the timeline then falls back to the * title given at spawn time, then to generic copy. */ export type ResolveSessionTitle = (sessionId: string) => string | null | undefined; type AgentIdentity = { /** The best known display title for an agent session, or null. */ titleFor: (sessionId: string | null | undefined) => string | null; onOpenSession?: ((sessionId: string) => void) | undefined; }; /** Typed routing coordinates only: a session reference is always a UUID. */ export declare function isSessionId(value: string | null | undefined): value is string; /** One bounded display line, or null for an empty or non-string title. */ export declare function displayAgentTitle(value: unknown): string | null; export declare function useAgentIdentity(): AgentIdentity; /** * Names the agents a timeline talks to. The host resolver wins (it follows * renames); otherwise the title the manager passed when spawning that session * in this same timeline is used. */ export declare function AgentIdentityProvider({ items, resolveSessionTitle, onOpenSession, children, }: { items: readonly TimelineItem[]; resolveSessionTitle?: ResolveSessionTitle | undefined; onOpenSession?: ((sessionId: string) => void) | undefined; children: ReactNode; }): import("react").JSX.Element; export {};