import { type DSourceState } from "../../store/index";
import type { DataType, DimensionRows, PluginProviders } from "../../types/index";
import { BasePlugin } from '../base.plugin';
import type { Observable } from '../../utils';
import type { GroupingOptions } from './grouping.row.types';
export * from './grouping.const';
export * from './grouping.row.expand.service';
export * from './grouping.row.types';
export * from './grouping.service';
export * from './grouping.row.renderer';
export declare class GroupingRowPlugin extends BasePlugin {
    private options;
    getStore(type?: DimensionRows): Observable<DSourceState<DataType, DimensionRows>>;
    constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders);
    private onFocus;
    private onExpand;
    private setColumnGrouping;
    private setColumns;
    private onDrag;
    private beforeTrimmedApply;
    private beforeFilterTrimmed;
    private isSortingRunning;
    /**
     * Returns grouping options for regrouping that must preserve current UI state.
     *
     * `expandedAll` and config `prevExpanded` are initial/config instructions.
     * Reusing them after sorting would reopen groups the user collapsed before
     * sorting instead of using the current grouped source state.
     */
    private getCurrentExpandedOptions;
    /**
     * Starts global source update with group clearing and applying new one
     * Initiated when need to reapply grouping
     */
    private doSourceUpdate;
    /**
     * Apply grouping on data set
     * Clear grouping from source
     * If source came from other plugin
     */
    private onDataSet;
    /**
     * External call to apply grouping. Called by revogrid when prop changed.
     */
    setGrouping(options: GroupingOptions): void;
    clearGrouping(): void;
    private updateTrimmed;
}
