import { T_fn, T_obj, T_sel } from "./ax";
export interface T_tool {
    name?: string,
    nodeName?: string,
    icon?: string,
    attrs?: T_obj,
    classes?: string | string[],
    label?: string,
    action?: T_fn,
    wrapEl?: T_el,
    iconEl?: T_el,
    labelEl?: T_el,
}
export interface T_btn {
    name?: string,
    type?: 'seal' | 'plain' | '',
    theme?: 'prim' | 'error' | 'succ' | 'info' | 'warn' | 'issue' | 'text' | 'breif' | 'ignore',
    href?: string,
    target?: string,
    rel?: string,
    size?: 'xs' | 'sm' | 'md' | 'lg',
    width?: 'x1' | 'x2' | 'x3' | 'x4' | 'x5' | 'x6' | 'x7' | 'x8' | 'x9' | 'x10' | 'neat' | 'full',
    shape?: 'sq' | 'ro',
    check?: 'ing' | 'ed',
    pfx?: string,
    sfx?: string,
    mean?: string | 'update' | 'remove' | 'expand' | 'more',
    disabled?: boolean,
    shaded?: boolean,
    grad?: boolean,
    label?: string,
    attrs?: T_obj,
    classes?: string | string[],
    action?: T_fn,
    el?: T_el,
}
export type T_tool_uion = T_tool | 'close' | 'remove' | 'update' | 'move' | 'toggle' | 'enlarge' | 'widen' | 'heighten';
export interface T_btn_ft extends T_btn {
    cb?: Function,
    url?: string,
    event?: string,
}
export type T_btn_ft_u = T_btn_ft | 'cancel' | 'close' | 'confirm';
export interface T_node {
    enable?: boolean,
    nodeName?: string,
    html?: string,
    attrs?: T_obj,
    el?: T_el,
}
export interface T_tools<B = 1> {
    enable?: boolean;
    placement?: 'inside' | 'outside';
    children?: B extends 1 ? T_tool_uion[] : T_tool[];
}
export interface T_footer<B = 1> {
    enable?: boolean,
    nodeName?: string,
    layout?: 'left' | 'right' | 'center' | 'plain',
    attrs?: T_obj,
    tips?: T_node | boolean,
    divider?: T_node | boolean,
    padding?: T_node | boolean,
    children?: B extends 1 ? T_btn_ft_u[] : T_btn_ft[],
}
export interface T_merge {
    arrAppend?: boolean,
    propAppend?: boolean,
    targetClone?: boolean
    override?: 'partial' | 'complete',
}
export type T_content_type = 'text' | 'html' | 'node' | 'iframe' | 'iframes' | 'video' | 'videos' | 'audio' | 'audios' | 'image' | 'images' | 'async' | 'asyncs' | 'form' | 'list' | 'input' | 'file' | 'textarea' | 'range' | 'number' | '';
export type T_ajax_type = 'get' | 'post';
export interface T_getcontent {
    content: any,
    contType?: T_content_type,
    contData?: T_obj | string,
    parent?: T_sel,
    ajax?: T_obj,
    hyphen?: string,
    request?: T_fn,
    cb?: (arg?: any) => any,
}
export interface T_setcontent {
    content: T_el | string | number | T_obj | T_obj[],
    target: T_sel,
    position?: 'override' | 'afterbegin' | 'beforeend',
    engine?: T_fn,
    template?: T_sel,
    list?: T_obj,
}
export type T_find_item = string | number | T_obj | T_el;
export interface T_module {
    name: string,
    maps: T_obj[],
    ready?: any,
    events?: T_obj,
    members?: T_obj,
    methods?: T_obj,
    type?: 'dom' | 'doms' | 'data' | 'none',
    component?: boolean,
    updatable?: boolean,
}
