import type { Database } from "bun:sqlite";
import type { BoardCard, BoardLane, BoardScope, BoardSnapshot, TaskBoard } from "../types/index.js";
export interface CreateTaskBoardInput {
    name: string;
    scope?: BoardScope;
    project_id?: string;
    task_list_id?: string;
    plan_id?: string;
    agent_id?: string;
    lanes?: BoardLane[];
    filters?: Record<string, unknown>;
}
export interface UpdateTaskBoardInput {
    name?: string;
    project_id?: string | null;
    task_list_id?: string | null;
    plan_id?: string | null;
    agent_id?: string | null;
    lanes?: BoardLane[];
    filters?: Record<string, unknown>;
}
export interface TaskBoardQuery {
    scope?: BoardScope;
    project_id?: string;
    task_list_id?: string;
    plan_id?: string;
    agent_id?: string;
    limit?: number;
}
export interface MoveBoardCardInput {
    board_id: string;
    card_id: string;
    lane_id?: string;
    status?: string;
}
export interface TaskBoardBundle {
    kind: "hasna.todos.task-board";
    schemaVersion: 1;
    exportedAt: string;
    boards: TaskBoard[];
}
export declare function createTaskBoard(input: CreateTaskBoardInput, db?: Database): TaskBoard;
export declare function getTaskBoard(idOrName: string, db?: Database): TaskBoard | null;
export declare function listTaskBoards(query?: TaskBoardQuery, db?: Database): TaskBoard[];
export declare function updateTaskBoard(idOrName: string, input: UpdateTaskBoardInput, db?: Database): TaskBoard;
export declare function deleteTaskBoard(idOrName: string, db?: Database): boolean;
export declare function buildTaskBoardSnapshot(idOrBoard: string | TaskBoard, db?: Database): BoardSnapshot;
export declare function moveBoardCard(input: MoveBoardCardInput, db?: Database): BoardCard;
export declare function renderTaskBoard(snapshot: BoardSnapshot): string;
export declare function exportTaskBoardBundle(idOrName?: string, db?: Database): TaskBoardBundle;
export declare function importTaskBoardBundle(bundle: TaskBoardBundle, db?: Database): {
    inserted: number;
    updated: number;
    skipped: number;
};
//# sourceMappingURL=boards.d.ts.map