export type EventEnvelope = {
    format_version: number;
    trace_id: string;
    project_id: string;
    span_id: string | null;
    parent_span_id: string | null;
    data: EventData;
};
export type EventData = {
    type: string;
    timestamp: string;
    [key: string]: any;
};
export type TreeNode = {
    id: string;
    traceId: string;
    parentId: string | null;
    children: TreeNode[];
    nodeKind: "trace" | "span" | "event" | "jsonLine" | "convoLine" | "rawDataToggle";
    label: string;
    summary: string;
    duration?: number;
    tokens?: number;
    cost?: number;
    firstTs?: number;
    event?: EventEnvelope;
};
export type ViewerState = {
    roots: TreeNode[];
    expanded: Set<string>;
    cursorId: string;
    scrollTop: number;
    quit: boolean;
    query?: string;
    matches?: string[];
    matchIdx?: number;
    helpOpen?: boolean;
    followOn?: boolean;
    messageBar?: string;
    viewportCols?: number;
};
