import { MenuItem } from 'primeng/api';
import { SmzMenuItem } from '../../modules/smz-menu/models/smz-menu-item';
import { SmzBuilderUtilities } from '../common/smz-builder-utilities';
import { SmzTableBuilder } from './state-builder';
export declare class SmzMenuTableBuilder<TData, TMappedData> extends SmzBuilderUtilities<SmzMenuTableBuilder<TData, TMappedData>> {
    private _tableBuilder;
    protected that: this;
    constructor(_tableBuilder: SmzTableBuilder<TData>);
    item(label?: string, icon?: string, tooltip?: string): SmzMenuItemTableBuilder<SmzMenuTableBuilder<TData, TMappedData>, TData, TMappedData>;
    separator(): SmzMenuTableBuilder<TData, TMappedData>;
    useInline(minWidth?: string): SmzMenuTableBuilder<TData, TMappedData>;
    get table(): SmzTableBuilder<TData>;
}
export declare class SmzMenuItemTableBuilder<TBuilder, TData, TMappedData = TData> extends SmzBuilderUtilities<SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>> {
    private _builder;
    private _parent;
    private _item;
    protected that: this;
    constructor(_builder: TBuilder, _parent: SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>, _item: SmzMenuItem);
    addChild(label: string, icon?: string): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setCallback(callback: (item: TMappedData) => void): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setRedirect(paths: string[]): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setVisibilityRule(callback: (item: TMappedData) => boolean): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setActivationRule(callback: (item: TMappedData) => boolean): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    hide(): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    disable(): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    addTransformRule<T>(callback: (item: T) => Partial<MenuItem>): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setDataMapping(callback: (item: TData) => TMappedData): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    askForConfirmation(title: string, message: string): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    askForCriticalConfirmation(title: string, message: string): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setIcon(icon: string): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setStyles(styleClass: string): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    setTooltip(message: string): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
    get menu(): TBuilder;
    applyChild(): SmzMenuItemTableBuilder<TBuilder, TData, TMappedData>;
}
