import { Action, Event, EventEmitter, EventHandler, Menu, Table, TableRow, TableRowMoveDirection } from '../index';
/**
 * When installed, the helper implements the actions for the given row menus to move the selected rows up or down.
 * It also updates the enabled and visible states of the menus accordingly.
 */
export declare class MoveTableRowMenuHelper extends EventEmitter {
    table: Table;
    moveRowUpMenu: Menu;
    moveRowDownMenu: Menu;
    alwaysShowMenus: boolean;
    rowFilter: (selectedRow: TableRow, direction: TableRowMoveDirection) => boolean;
    protected _actionHandler: EventHandler;
    protected _tableHandler: EventHandler;
    protected _moving: boolean;
    install(options: MoveRowMenuInstallOptions): void;
    uninstall(): void;
    protected _updateMenus(): boolean;
    protected _onTableEvent(event: Event<Table>): void;
    protected _onMoveRowMenuAction(event: Event<Action>): void;
    protected _selectedRows(direction: TableRowMoveDirection): TableRow[];
}
export interface MoveRowMenuInstallOptions {
    table: Table;
    moveRowUpMenu: Menu;
    moveRowDownMenu: Menu;
    /**
     * Specifies whether the menus should be visible even if there are no rows or no selected rows. Default is false.
     */
    alwaysShowMenus?: boolean;
    /**
     * May be specified if some rows should not be movable.
     */
    rowFilter?: (selectedRow: TableRow, direction: TableRowMoveDirection) => boolean;
}
//# sourceMappingURL=MoveTableRowMenuHelper.d.ts.map