import { KanbanOptions } from './kanban.types';
/**
* Headless kanban board controller. Moves items between columns and reorders
* them within a column via pointer drag (powered by
* `@atlaskit/pragmatic-drag-and-drop`) and keyboard, reflecting `data-dragging`
* and emitting a typed move event — it applies no visual styles.
*
* Markup:
* ```html
*
*
*
*
First task
*
Second task
*
*
*
*
* ```
*/
export declare class Kanban {
private readonly root;
private readonly dragEnabled;
private readonly keyboardEnabled;
/** Scopes pragmatic-dnd interactions to this board instance. */
private readonly dndKey;
private cleanups;
constructor(root: HTMLElement, options?: KanbanOptions);
private init;
private prepareItem;
private columns;
private items;
private listOf;
private columnOfList;
private itemsIn;
private listForColumn;
private itemValue;
/** Current item `data-value`s for every column, keyed by column value. */
getOrder(): Record;
/** Insert `item` into `list` at `index` (clamped). No event. */
private insertInto;
private emitMove;
private positionOf;
/**
* Move an item (by `data-value`) into a column (by `data-value`) at an
* optional index (defaults to the end). Emits `kanban:move` when something
* actually changes.
*/
moveItem(itemValue: string, toColumnValue: string, toIndex?: number): boolean;
private onKeydown;
private moveToAdjacentColumn;
private setupDnd;
/** Apply a completed pointer drop: compute the destination list + index and move. */
private applyDrop;
/** Subscribe to a DOM event on the root element. Returns an unsubscribe fn. */
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}