import { SlickEventHandler, type SlickDataView, type SlickEventData, type SlickGrid } from '../core/index.js';
import type { Column, Formatter, GridOption, GroupingFormatterItem, GroupItemMetadataProviderOption, ItemMetadata, OnClickEventArgs, SlickPlugin } from '../interfaces/index.js';
/**
 * Provides item metadata for group (SlickGroup) and totals (SlickTotals) rows produced by the DataView.
 * This metadata overrides the default behavior and formatting of those rows so that they appear and function
 * correctly when processed by the grid.
 *
 * This class also acts as a grid plugin providing event handlers to expand & collapse groups.
 * If "grid.registerPlugin(...)" is not called, expand & collapse will not work.
 */
export declare class SlickGroupItemMetadataProvider implements SlickPlugin {
    readonly pluginName = "GroupItemMetadataProvider";
    protected _eventHandler: SlickEventHandler;
    protected _grid: SlickGrid;
    protected _options: GroupItemMetadataProviderOption;
    protected _defaults: GroupItemMetadataProviderOption;
    constructor(inputOptions?: GroupItemMetadataProviderOption);
    /** Getter of the SlickGrid Event Handler */
    get eventHandler(): SlickEventHandler;
    /** Getter of SlickGrid DataView object */
    protected get dataView(): SlickDataView;
    get gridOptions(): GridOption;
    init(grid: SlickGrid, inputOptions?: GroupItemMetadataProviderOption): void;
    destroy(): void;
    dispose(): void;
    getOptions(): GroupItemMetadataProviderOption;
    setOptions(inputOptions: GroupItemMetadataProviderOption): void;
    getGroupRowMetadata(item: GroupingFormatterItem, _row: number): ItemMetadata;
    getTotalsRowMetadata(item: {
        group: GroupingFormatterItem;
    }, _row: number): {
        selectable: boolean;
        focusable: boolean | undefined;
        cssClasses: string;
        formatter: Formatter | undefined;
        editorClass: null;
    };
    protected defaultGroupCellFormatter(_row: number, _cell: number, _value: any, _columnDef: Column, item: any): any;
    protected defaultTotalsCellFormatter(_row: number, _cell: number, _value: any, columnDef: Column, item: any, grid: SlickGrid): string | HTMLElement;
    /** Handle a grid cell clicked, it could be a Group that is being collapsed/expanded or do nothing when it's not */
    protected handleGridClick(e: SlickEventData, args: OnClickEventArgs): void;
    /**
     * Handle a keyboard down event on a grouping cell.
     * TODO:  add -/+ handling
     */
    protected handleGridKeyDown(e: SlickEventData): void;
    protected handleDataViewExpandOrCollapse(item: any): void;
}
//# sourceMappingURL=slickGroupItemMetadataProvider.d.ts.map