import { IGrid, NotifyArgs } from '../base/interface';
import { EditRender } from '../renderer/edit-renderer';
import { ServiceLocator } from '../services/service-locator';
import { BatchEdit } from './batch-edit';
import { Data } from './data';
/**
 * `CellEdit` module is used to handle single-cell editing with keyboard navigation.
 *
 * @hidden
 */
export declare class CellEdit extends BatchEdit {
    renderer: EditRender;
    private cellEditModule;
    data: Data;
    constructor(parent: IGrid, serviceLocator: ServiceLocator, renderer?: EditRender);
    /**
     * Register event listeners for cell edit mode.
     *
     * @returns {void}
     * @hidden
     */
    addEventListener(): void;
    /**
     * Remove event listeners (called during destroy).
     *
     * @returns {void}
     * @hidden
     */
    removeEventListener(): void;
    protected clickHandler(e: MouseEvent): void;
    protected dblClickHandler(e: MouseEvent): void;
    /**
     * Enter edit mode for specified cell.
     *
     * @param {number} rowIndex - Row index to edit
     * @param {string} field - Column field to edit
     * @returns {void}
     */
    editCell(rowIndex: number, field: string): void;
    editCellExtend(rowIndex: number, field: string): void;
    updateCell(rowIndex: number, field: string, value: string | number | boolean | Date): void;
    /**
     * Save current cell edit.
     *
     * @returns {void}
     */
    saveCell(): void;
    endEdit(): void;
    closeEdit(): void;
    /**
     * Close edit mode and cleanup.
     *
     * @returns {void}
     * @hidden
     */
    closeCellEdit(): void;
    /**
     * In Cell edit mode, add creates a new row and immediately enters edit mode on first cell.
     *
     * @param {Object} [data] - optional default data for new record
     * @param {number} [index] - optional index for new record
     * @returns {void}
     */
    addRecord(data?: Object, index?: number): void;
    /**
     * In Cell edit mode, delete removes the row immediately from grid.
     *
     * @param {string} [fieldname] - optional field name for specific record
     * @param {Object} [data] - optional data object to delete
     * @returns {void}
     */
    deleteRecord(fieldname?: string, data?: Object): void;
    /**
     * Handle delete complete event - cleanup after row deletion.
     *
     * @param {NotifyArgs} e - NotifyArgs event
     * @returns {void}
     */
    editComplete(e: NotifyArgs): void;
    /**
     * Destroy cell edit module.
     *
     * @returns {void}
     * @hidden
     */
    destroy(): void;
}
