import { T_el, T_opt } from './ax';
import { T_drawer } from './drawer';
type T_menu_row = {
    enable?: boolean,
    headWidth?: string,
    bodyWidth?: string,
    marginLeft?: string,
    marginRight?: string,
    align?: 'left' | 'center' | 'right',
}
type T_menu_arrow = {
    enable?: boolean,
    icon?: string,
}
interface T_menu_drawer extends T_drawer {
    enable?: boolean,
}
export interface T_menu<B = 1> extends T_opt {
    scheme?: string,
    content?: any,
    contType?: 'html'|'async'|'',
    contData?: T_obj,
    ajax?:T_obj,
    dispose?: boolean,
    expose?: boolean,
    active?: number | string | T_el | T_obj | (number | string | T_el | T_ob)[],
    disable?: number | string | T_el | T_obj | (number | string | T_el | T_ob)[],
    multiple?: boolean,
    pageClose?: boolean,
    expandAll?: boolean,
    zIndex?: number,
    trigger?: string,
    rootStart?: number,
    idStart?: number,
    floorStart?: number,
    pathHyphen?: string,
    duration?:number,
    spill?:false,
    arrow?: B extends 1 ? (T_menu_arrow | boolean) : T_menu_arrow,
    max?: number,
    classes?: string | string[]
    addActive?: boolean,
    rise?:boolean,
    gapless?: boolean,
    lamp?: 'dot' | 'line',
    full?: boolean,
    drawer:B extends 1 ? (T_menu_drawer | boolean) : T_menu_drawer,
    row?: B extends 1 ? (T_menu_row | boolean) : T_menu_row,
    b4Expand?: T_fn,
    b4Collapse?: T_fn,
    b4Add?: T_fn,
    b4Edit?: T_fn,
    b4Remove?: T_fn,
    b4Graft?: T_fn,
    onRender?: T_fn,
    onTrigger?: T_fn,
    onAdd?: T_fn,
    onEdit?: T_fn,
    onRemove?: T_fn,
    onDisable?: T_fn,
    onEnable?: T_fn,
    onDisableALL?: T_fn,
    onEnableAll?: T_fn,
    onExpand?: T_fn,
    onCollapse?: T_fn,
    onSelect?: T_fn,
    onUpdate?: T_fn,
    onUpdateCont?: T_fn,
    onExpandAll?: T_fn,
    onCollapseAll?: T_fn,
    onGraft?:T_fn,
    onRequest?:T_fn;
}
