import type { DeleteCancelEvent, DeleteConfirmEvent, DeleteErrorEvent, DeleteStartEvent, DeleteSuccessEvent, EditingExitEvent, EditingSaveEvent, EditingStartEvent, InsertCancelEvent, InsertStartEvent, InsertSuccessEvent, SortChangeEvent, SortClearEvent, TableEventMap, ValidationErrorChangeEvent, ValidationErrorEvent, ValidationSuccessEvent } from './types.js';
/**
 * TableEventManager handles dispatching of custom events for table operations.
 * Provides type-safe event triggering methods and centralized event management.
 */
export declare class TableEventManager<TData = unknown> {
    private element;
    constructor(element?: HTMLElement | Document | null);
    /**
     * Updates the element reference for event dispatching
     */
    setElement(element: HTMLElement | Document | null): void;
    private printWarning;
    /**
     * Generic method to trigger any table event
     */
    private triggerEvent;
    /**
     * Triggers when a cell enters edit mode
     */
    triggerEditingStart(payload: Omit<EditingStartEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when a cell edit is successfully saved
     */
    triggerEditingSave(payload: Omit<EditingSaveEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when exiting edit mode (regardless of save/cancel)
     */
    triggerEditingExit(payload: Omit<EditingExitEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when validation fails
     */
    triggerValidationError(payload: Omit<ValidationErrorEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when validation succeeds
     */
    triggerValidationSuccess(payload: Omit<ValidationSuccessEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when validation error state changes
     */
    triggerValidationErrorChange(payload: Omit<ValidationErrorChangeEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when a delete operation starts
     */
    triggerDeleteStart(payload: Omit<DeleteStartEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when user confirms the deletion
     */
    triggerDeleteConfirm(payload: Omit<DeleteConfirmEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when deletion is successfully completed
     */
    triggerDeleteSuccess(payload: Omit<DeleteSuccessEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when deletion is cancelled
     */
    triggerDeleteCancel(payload: Omit<DeleteCancelEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when deletion fails due to an error
     */
    triggerDeleteError(payload: Omit<DeleteErrorEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when a new row insertion starts
     */
    triggerInsertStart(payload: Omit<InsertStartEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when a new row insertion is successfully completed
     */
    triggerInsertSuccess(payload: Omit<InsertSuccessEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when a new row insertion is cancelled
     */
    triggerInsertCancel(payload: Omit<InsertCancelEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when column sort direction changes
     */
    triggerSortChange(payload: Omit<SortChangeEvent<TData>, 'timestamp'>): void;
    /**
     * Triggers when column sorting is cleared
     */
    triggerSortClear(payload: Omit<SortClearEvent<TData>, 'timestamp'>): void;
    /**
     * Add an event listener for a specific table event
     */
    addEventListener<K extends keyof TableEventMap<TData>>(eventType: K, listener: (event: CustomEvent<TableEventMap<TData>[K]>) => void, options?: AddEventListenerOptions): void;
    /**
     * Remove an event listener for a specific table event
     */
    removeEventListener<K extends keyof TableEventMap<TData>>(eventType: K, listener: (event: CustomEvent<TableEventMap<TData>[K]>) => void, options?: EventListenerOptions): void;
}
//# sourceMappingURL=table-event-manager.d.ts.map