import { MenuItem } from 'primeng/api';
import { SmzMenuItem } from '../../modules/smz-menu/models/smz-menu-item';
import { SmzTableBuilder } from './state-builder';
export declare class SmzBatchMenuBuilder<TData> {
    private _tableBuilder;
    constructor(_tableBuilder: SmzTableBuilder<TData>);
    item(label: string, icon?: string, tooltip?: string): SmzBatchMenuItemBuilder<TData>;
    separator(): SmzBatchMenuBuilder<TData>;
    get table(): SmzTableBuilder<TData>;
}
export declare class SmzBatchMenuItemBuilder<TData> {
    private _menuBuilder;
    private _parent;
    private _item;
    constructor(_menuBuilder: SmzBatchMenuBuilder<TData>, _parent: SmzBatchMenuItemBuilder<TData>, _item: SmzMenuItem);
    addChild(label: string, icon?: string): SmzBatchMenuItemBuilder<TData>;
    setCallback<T>(callback: (item: T) => void): SmzBatchMenuItemBuilder<TData>;
    setRedirect(paths: string[]): SmzBatchMenuItemBuilder<TData>;
    setVisibilityRule<T>(callback: (item: T) => boolean): SmzBatchMenuItemBuilder<TData>;
    setActivationRule<T>(callback: (item: T) => boolean): SmzBatchMenuItemBuilder<TData>;
    hide(): SmzBatchMenuItemBuilder<TData>;
    disable(): SmzBatchMenuItemBuilder<TData>;
    addTransformRule<T>(callback: (item: T) => Partial<MenuItem>): SmzBatchMenuItemBuilder<TData>;
    get menu(): SmzBatchMenuBuilder<TData>;
    applyChild(): SmzBatchMenuItemBuilder<TData>;
}
