import { MenuItem } from 'primeng/api';
import { SmzMenuItem } from '../../modules/smz-menu/models/smz-menu-item';
import { SmzBuilderUtilities } from '../common/smz-builder-utilities';
export declare class SmzMenuBuilder extends SmzBuilderUtilities<SmzMenuBuilder> {
    protected that: this;
    private _items;
    constructor();
    item(label: string, icon?: string, tooltip?: string): SmzMenuItemBuilder;
    separator(): SmzMenuBuilder;
    build(): SmzMenuItem[];
}
export declare class SmzMenuItemBuilder {
    private _menuBuilder;
    private _parent;
    private _item;
    constructor(_menuBuilder: SmzMenuBuilder, _parent: SmzMenuItemBuilder, _item: SmzMenuItem);
    addChild(label: string, icon?: string): SmzMenuItemBuilder;
    setCallback<T>(callback: (item: T) => void): SmzMenuItemBuilder;
    setRedirect(paths: string[]): SmzMenuItemBuilder;
    setVisibilityRule<T>(callback: (item: T) => boolean): SmzMenuItemBuilder;
    setActivationRule<T>(callback: (item: T) => boolean): SmzMenuItemBuilder;
    hide(): SmzMenuItemBuilder;
    disable(): SmzMenuItemBuilder;
    addTransformRule<T>(callback: (item: T) => Partial<MenuItem>): SmzMenuItemBuilder;
    askForConfirmation(title: string, message: string): SmzMenuItemBuilder;
    askForCriticalConfirmation(title: string, message: string): SmzMenuItemBuilder;
    get menu(): SmzMenuBuilder;
    applyChild(): SmzMenuItemBuilder;
}
