import { BeanStub } from 'ag-grid-community';
import type { IRowNode, RowGroupExpansionState } from 'ag-grid-community';
import type { IExpansionStrategy } from './iExpansionStrategy';
export declare class ExpandStrategy extends BeanStub implements IExpansionStrategy<RowGroupExpansionState> {
    name: string;
    private expanded;
    private collapsed;
    private readonly initialState;
    /**
     * Set the expanded and collapsed rows.
     * @param expandedRows the rows to expand
     * @param touchedRows the rows that have been touched
     */
    setExpandedState({ expandedRowGroupIds, collapsedRowGroupIds }: RowGroupExpansionState): void;
    /**
     * Get the serializable expanded state
     * @returns an object containing the expanded and collapsed rows
     */
    getExpandedState(): RowGroupExpansionState;
    /**
     * Set the expanded state for a row.
     * @param row the row to expand/collapse
     * @param expanded true to expand the row, false to collapse it
     */
    setRowExpanded(row: IRowNode, expanded: boolean): void;
    /**
     * Check if a row is expanded.
     * @param rowId the row id to check
     * @returns true if the row is expanded
     */
    isRowExpanded(node: IRowNode): boolean;
    /**
     * This is different from just checking expandedState.isExpanded(rowNode.id),
     * as this correctly prioritizes user interaction over the user-defined initial state.
     * Plus sanity checks that the rowNode is actually expandable.
     */
    private getInitialRowState;
    /**
     * if the row is expanded or has been collapsed intentionally, do not apply initial state.
     * @param rowId the row id to check
     * @returns true if the row has been toggled
     */
    isRowInitialised(rowId: string): boolean;
    /**
     * Expand or collapse all loaded rows.
     * @param expanded true to expand all rows, false to collapse all rows
     */
    expandAll(expanded: boolean): void;
}
