import { CdkDragDrop } from "@angular/cdk/drag-drop";
import { AfterContentInit, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from "@angular/core";
import { KanbanEventService } from "./kanban-event.service";
import { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData } from "./types/index";
import { TemplateDirective } from "@seniorsistemas/angular-components/template";
import * as i0 from "@angular/core";
export declare class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {
    private readonly kanbanEventService;
    data: KanbanData;
    showItemCheckboxes: boolean;
    showColumnCheckboxes: boolean;
    itemsMoved: EventEmitter<KanbanItemMovedData>;
    dataUpdated: EventEmitter<KanbanData>;
    itemsSelected: EventEmitter<KanbanItem[]>;
    selectedColumn: KanbanColumn | null;
    selectedItems: Set<KanbanItem>;
    draggingItems: Set<KanbanItem>;
    columnHeaderTemplate: TemplateRef<any> | null;
    columnEmptyMessageTemplate: TemplateRef<any> | null;
    itemHeaderTemplate: TemplateRef<any> | null;
    itemBodyTemplate: TemplateRef<any> | null;
    itemFooterTemplate: TemplateRef<any> | null;
    private _unsubscribe$;
    templates: QueryList<TemplateDirective> | null;
    constructor(kanbanEventService: KanbanEventService);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    drop(event: CdkDragDrop<KanbanItem[]>): void;
    selectItem(event: MouseEvent, item: KanbanItem, column: KanbanColumn): void;
    dragStarted(): void;
    dragReleased(): void;
    getLinkedColumns(currentColumn: KanbanColumn): string[];
    getColumnHeaderTemplate(): TemplateRef<any> | null;
    getColumnEmptyMessageTemplate(): TemplateRef<any> | null;
    getItemHeaderTemplate(): TemplateRef<any> | null;
    getItemBodyTemplate(): TemplateRef<any> | null;
    getItemFooterTemplate(): TemplateRef<any> | null;
    private _getCustomTemplate;
    private _subscribeEvents;
    private _normalizeData;
    private _validateInputs;
    private _getTemplates;
    static ɵfac: i0.ɵɵFactoryDeclaration<KanbanComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KanbanComponent, "s-kanban", never, { "data": { "alias": "data"; "required": true; }; "showItemCheckboxes": { "alias": "showItemCheckboxes"; "required": false; }; "showColumnCheckboxes": { "alias": "showColumnCheckboxes"; "required": false; }; }, { "itemsMoved": "itemsMoved"; "dataUpdated": "dataUpdated"; "itemsSelected": "itemsSelected"; }, ["templates"], never, false, never>;
}
