import { ContentType } from "./core";
export interface Code {
    code: string;
    filename?: string;
    language: string;
    lineRange?: {
        end: number;
        start: number;
    };
}
export interface ToolCall {
    arguments?: Record<string, unknown>;
    result?: unknown;
    status: "pending" | "executing" | "completed" | "failed";
    toolId: string;
    toolName: string;
}
export interface PlanStep {
    completed: boolean;
    description: string;
    id: string;
    subSteps?: PlanStep[];
}
export interface DataTable {
    columns: TableColumn[];
    rows: TableRow[];
    title?: string;
}
export interface TableColumn {
    key: string;
    label: string;
    type?: "string" | "number" | "date" | "boolean";
}
export type TableRow = Record<string, unknown>;
export interface Visualization {
    data: unknown;
    options?: Record<string, unknown>;
    title?: string;
    type: "chart" | "diagram" | "graph" | "other";
}
export interface ContentSegment {
    codeBlock?: Code;
    content?: string;
    data?: {
        code?: Code;
        plan?: PlanStep[];
        table?: DataTable;
        tool?: ToolCall;
        visual?: Visualization;
    };
    dataTable?: DataTable;
    id: string;
    planSteps?: PlanStep[];
    text?: string;
    toolCall?: ToolCall;
    type: ContentType;
    visualization?: Visualization;
}
export interface Mention {
    context?: MentionContext;
    endIndex: number;
    item: MentionItem;
    startIndex: number;
    text: string;
}
export interface MentionItem {
    id: string;
    label: string;
    type: string;
    value?: string;
}
export interface MentionContext {
    fullContext: string;
    mentionText: string;
}
