import type { Database } from "bun:sqlite";
import { type InboxItem } from "../db/inbox.js";
import { type TaskRun } from "../db/task-runs.js";
import type { Plan, Project, Task, TaskStatus } from "../types/index.js";
export type TuiDashboardView = "overview" | "projects" | "tasks" | "plans" | "runs" | "dependencies" | "inbox" | "search";
export declare const TUI_DASHBOARD_VIEWS: TuiDashboardView[];
export interface TuiDashboardProject extends Pick<Project, "id" | "name" | "path"> {
    open_tasks: number;
}
export interface TuiDashboardPlan extends Pick<Plan, "id" | "name" | "status" | "project_id"> {
    open_tasks: number;
}
export interface TuiDashboardDependency {
    task_id: string;
    task_title: string;
    task_status: TaskStatus;
    depends_on: string;
    depends_on_title: string;
    depends_on_status: TaskStatus;
    blocking: boolean;
}
export interface TuiDashboardSnapshot {
    generated_at: string;
    local_only: true;
    project_id: string | null;
    active_view: TuiDashboardView;
    keymap: string[];
    counts: Record<TaskStatus | "total", number>;
    projects: TuiDashboardProject[];
    tasks: Task[];
    plans: TuiDashboardPlan[];
    runs: TaskRun[];
    dependencies: TuiDashboardDependency[];
    inbox: InboxItem[];
    search: {
        query: string;
        total: number;
        results: Task[];
    };
}
export interface CreateTuiDashboardSnapshotOptions {
    project_id?: string;
    search?: string;
    active_view?: TuiDashboardView;
    limit?: number;
}
export declare function createTuiDashboardSnapshot(options?: CreateTuiDashboardSnapshotOptions, db?: Database): TuiDashboardSnapshot;
export declare function renderTuiDashboardSnapshot(snapshot: TuiDashboardSnapshot): string;
//# sourceMappingURL=tui-dashboard.d.ts.map