import * as React from 'react';
export interface KanbanAssignee {
    id: string;
    name: string;
    kind?: string;
    avatarUrl?: string;
}
export interface KanbanCardData {
    id: string;
    title: string;
    description?: string;
    labels?: {
        text: string;
        color: string;
    }[];
    assignee?: string;
    priority?: 'low' | 'medium' | 'high' | 'critical';
    dueDate?: string | Date;
    assignees?: KanbanAssignee[];
    issueKey?: string;
    issueType?: string;
    storyPoints?: number;
    completionPercentage?: number;
    subtaskCount?: number;
    subtaskCompleted?: number;
}
export interface KanbanColumnData {
    id: string;
    title: string;
    cards: KanbanCardData[];
    limit?: number;
    color?: string;
    collapsible?: boolean;
    collapsed?: boolean;
    emptyMessage?: string;
    addButton?: boolean;
}
export interface KanbanBoardProps extends React.ComponentProps<'div'> {
    columns: KanbanColumnData[];
    draggable?: boolean;
    onCardMove?: (cardId: string, fromColumn: string, toColumn: string, index: number) => void;
    onCardClick?: (card: KanbanCardData) => void;
    onAddCard?: (columnId: string) => void;
    descriptionMaxLength?: number;
    maxLabels?: number;
}
interface KanbanCardProps {
    card: KanbanCardData;
    columnId: string;
    isDraggable: boolean;
    descriptionMaxLength: number;
    maxLabels: number;
    onClick?: ((card: KanbanCardData) => void) | undefined;
    onDragStart: (cardId: string, columnId: string) => void;
}
declare function KanbanCard({ card, columnId, isDraggable, descriptionMaxLength, maxLabels, onClick, onDragStart, }: KanbanCardProps): import("react/jsx-runtime").JSX.Element;
interface KanbanColumnProps {
    column: KanbanColumnData;
    isDraggable: boolean;
    descriptionMaxLength: number;
    maxLabels: number;
    onCardClick?: ((card: KanbanCardData) => void) | undefined;
    onAddCard?: ((columnId: string) => void) | undefined;
    onDragStart: (cardId: string, columnId: string) => void;
    onDrop: (columnId: string, index: number) => void;
}
declare function KanbanColumn({ column, isDraggable, descriptionMaxLength, maxLabels, onCardClick, onAddCard, onDragStart, onDrop, }: KanbanColumnProps): import("react/jsx-runtime").JSX.Element;
declare function KanbanBoard({ columns, draggable, onCardMove, onCardClick, onAddCard, descriptionMaxLength, maxLabels, className, ...props }: KanbanBoardProps): import("react/jsx-runtime").JSX.Element;
declare namespace KanbanBoard {
    var displayName: string;
}
export { KanbanBoard, KanbanColumn, KanbanCard };
//# sourceMappingURL=kanban.d.ts.map