import { BaseGridPlugin } from '../../core/plugin/base-plugin';
import { AggregationRowConfig, PinnedRowsConfig, PinnedRowsContext, PinnedRowsPanel } from './types';
/**
 * Pinned Rows Plugin for tbw-grid
 *
 * @example
 * ```ts
 * new PinnedRowsPlugin({
 *   enabled: true,
 *   position: 'bottom',
 *   showRowCount: true,
 *   showSelectedCount: true,
 *   aggregationRows: [
 *     { id: 'totals', position: 'bottom', values: { amount: 'sum' } },
 *   ],
 * })
 * ```
 */
export declare class PinnedRowsPlugin extends BaseGridPlugin<PinnedRowsConfig> {
    readonly name = "pinnedRows";
    readonly styles: string;
    protected get defaultConfig(): Partial<PinnedRowsConfig>;
    private infoBarElement;
    private topAggregationContainer;
    private bottomAggregationContainer;
    private footerWrapper;
    detach(): void;
    afterRender(): void;
    private cleanup;
    private cleanupFooter;
    private getSelectionState;
    private getFilterState;
    /**
     * Refresh the status bar to reflect current grid state.
     */
    refresh(): void;
    /**
     * Get the current status bar context.
     * @returns The context with row counts and other info
     */
    getContext(): PinnedRowsContext;
    /**
     * Add a custom panel to the info bar.
     * @param panel - The panel configuration to add
     */
    addPanel(panel: PinnedRowsPanel): void;
    /**
     * Remove a custom panel by ID.
     * @param id - The panel ID to remove
     */
    removePanel(id: string): void;
    /**
     * Add an aggregation row.
     * @param row - The aggregation row configuration
     */
    addAggregationRow(row: AggregationRowConfig): void;
    /**
     * Remove an aggregation row by ID.
     * @param id - The aggregation row ID to remove
     */
    removeAggregationRow(id: string): void;
}
//# sourceMappingURL=PinnedRowsPlugin.d.ts.map