import { KanbanCard, KanbanColumn, KanbanConfig } from './types';
export type { KanbanCard, KanbanColumn, KanbanConfig, KanbanAssignee, KanbanSwimlane, KanbanAction, KanbanAnimations, } from './types';
export declare class Kanban {
    private readonly container;
    private readonly config;
    private readonly instanceId;
    private columns;
    private wrapperEl;
    private dragState;
    private readonly collapsedState;
    constructor(config: KanbanConfig);
    /** Replace all columns and re-render */
    update(columns: KanbanColumn[]): void;
    /** Add a card to a specific column */
    addCard(columnId: string, card: KanbanCard): void;
    /** Remove a card by ID from any column */
    removeCard(cardId: string): void;
    /** Move a card to a target column at a specific index */
    moveCard(cardId: string, toColumnId: string, index: number): void;
    /** Remove the component from the DOM and clean up */
    destroy(): void;
    /** Deep-clone columns to avoid mutating config */
    private cloneColumns;
    /** Check if animations are enabled */
    private isAnimationEnabled;
    /** Get the max description length */
    private getDescriptionMaxLength;
    /** Get the max labels count */
    private getMaxLabels;
    /** Get the max assignee avatars count */
    private getMaxAssigneeAvatars;
    /** Render the entire board */
    private render;
    /** Render board with swimlane grouping */
    private renderWithSwimlanes;
    /** Render a single column */
    private renderColumn;
    /** Render a single card */
    private renderCard;
    /** Render the issue row (issueKey, issueType, storyPoints, rank) */
    private renderIssueRow;
    /** Render context chips (epic, sprint, parent) */
    private renderContextChips;
    /** Render truncated description */
    private renderDescription;
    /** Render subtask / completion progress bar */
    private renderProgressBar;
    /** Render due date with overdue/today/soon modifiers */
    private renderDueDate;
    /** Render comment and attachment count stats */
    private renderStats;
    /** Render assignee avatars (array format) or legacy single assignee */
    private renderAssignees;
    /** Render label pills with overflow */
    private renderLabels;
    /** Render quick action buttons */
    private renderActions;
    /** Whether drag-and-drop is enabled */
    private isDraggable;
    /** Set up drag events on a card element */
    private setupDragSource;
    /** Set up drop zone on a card list element */
    private setupDropZone;
    /** Calculate the index to insert the card at based on mouse Y position */
    private calculateDropIndex;
    /** Extract a card from its current column, returning the card and source column id */
    private extractCard;
    /** Perform a card move between columns, with async revert support */
    private performMove;
}
//# sourceMappingURL=index.d.ts.map