import * as react_jsx_runtime from 'react/jsx-runtime';
import * as react from 'react';
import { HTMLAttributes, ReactNode } from 'react';
import { a as SerializedColumn, b as SerializedTask, c as SerializedBoard } from '../../../../shared/stack.DJaKVY7v.js';

declare function BoardsListPageComponent(): react_jsx_runtime.JSX.Element;

interface BoardPageComponentProps {
    boardId: string;
}
declare function BoardPageComponent({ boardId }: BoardPageComponentProps): react_jsx_runtime.JSX.Element;

declare function NewBoardPageComponent(): react_jsx_runtime.JSX.Element;

declare function NotFoundPage(): react_jsx_runtime.JSX.Element;

interface PageWrapperProps extends HTMLAttributes<HTMLDivElement> {
    children: ReactNode;
}
declare function PageWrapper({ children, className, ...props }: PageWrapperProps): react_jsx_runtime.JSX.Element;

interface EmptyStateProps {
    title: string;
    description?: string;
    action?: ReactNode;
    icon?: ReactNode;
    className?: string;
}
declare function EmptyState({ title, description, action, icon, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;

interface DefaultErrorProps {
    error?: Error;
    reset?: () => void;
}
declare function DefaultError({ error, reset }: DefaultErrorProps): react_jsx_runtime.JSX.Element;

interface KanbanBoardProps {
    columns: (SerializedColumn & {
        tasks: SerializedTask[];
    })[];
    kanbanState: Record<string, SerializedTask[]>;
    onKanbanChange: (newData: Record<string, SerializedTask[]>) => void;
    onAddTask: (columnId: string) => void;
    onEditTask: (columnId: string, taskId: string) => void;
    onEditColumn: (columnId: string) => void;
    onDeleteColumn: (columnId: string) => void;
}
declare function KanbanBoardComponent({ columns, kanbanState, onKanbanChange, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
declare const KanbanBoard: react.MemoExoticComponent<typeof KanbanBoardComponent>;

interface ColumnContentProps {
    column: SerializedColumn & {
        tasks: SerializedTask[];
    };
    onAddTask: () => void;
    onEditTask: (taskId: string) => void;
    onEditColumn: () => void;
    onDeleteColumn: () => void;
}
declare function ColumnContentComponent({ column, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: ColumnContentProps): react_jsx_runtime.JSX.Element;
declare const ColumnContent: react.MemoExoticComponent<typeof ColumnContentComponent>;

interface TaskCardProps {
    task: SerializedTask;
    onClick: () => void;
}
declare function TaskCardComponent({ task, onClick }: TaskCardProps): react_jsx_runtime.JSX.Element;
declare const TaskCard: react.MemoExoticComponent<typeof TaskCardComponent>;

interface BoardFormProps {
    board?: SerializedBoard;
    onClose: () => void;
    onSuccess: (boardId: string) => void;
}
declare function BoardForm({ board, onClose, onSuccess }: BoardFormProps): react_jsx_runtime.JSX.Element;

interface ColumnFormProps {
    boardId: string;
    columnId?: string;
    column?: SerializedColumn;
    onClose: () => void;
    onSuccess: () => void;
}
declare function ColumnForm({ boardId, columnId, column, onClose, onSuccess, }: ColumnFormProps): react_jsx_runtime.JSX.Element;

interface TaskFormProps {
    columnId: string;
    boardId: string;
    taskId?: string;
    task?: SerializedTask;
    columns: SerializedColumn[];
    onClose: () => void;
    onSuccess: () => void;
    onDelete?: () => void;
}
declare function TaskForm({ columnId, boardId, taskId, task, columns, onClose, onSuccess, onDelete, }: TaskFormProps): react_jsx_runtime.JSX.Element;

declare function BoardsListSkeleton(): react_jsx_runtime.JSX.Element;

declare function BoardSkeleton(): react_jsx_runtime.JSX.Element;

export { BoardForm, BoardPageComponent, BoardSkeleton, BoardsListPageComponent, BoardsListSkeleton, ColumnContent, ColumnForm, DefaultError, EmptyState, KanbanBoard, NewBoardPageComponent, NotFoundPage, PageWrapper, TaskCard, TaskForm };
