import { T_ajax } from "./ajax";
import { T_fn, T_obj, T_opt, T_popup_trigger, T_sel,T_bubble_list } from "./ax";
import { T_footer, T_tools } from "./utils";
type T_arrow = {
    enable?: boolean,
    offset?: string | number,
    gap?: string | number,
}
type T_wing = {
    selector?:T_sel ,
    trigger?: 'click'|'hover'|'sticky'|'input'|'none'|'',
    triggerClass?: string,
}
type T_media = {
    caption?: string,
    brief?: string,
}
export interface T_popup<B=1> extends T_opt {
    theme?:'prim'|'succ'|'info'|'error'|'issue'|'warn'|'text'|'prim-lit'|'succ-lit'|'info-lit'|'error-lit'|'issue-lit'|'warn-lit'|'text-lit'|'';
    heading?: string;
    divider?: boolean;
    placement?: T_position_place;
    trigger?:  T_popup_trigger;
    pageClose?: boolean;
    asleep?:boolean;
    keepShow?: boolean;
    deadShow?: boolean;
    size?: string;
    duration?: number;
    in?: string;
    out?: string;
    multiple?: boolean;
    classes?: string | string[];
    height?: string;
    padding?: string | boolean;
    content?: any;
    contType?: string;
    contData?: T_obj;
    ajax?: T_ajax;
    list?:T_bubble_list;
    actClass?: string;
    tplStr?: string;
    tplEng?: any;
    zIndex?: number;
    adaptive?: boolean;
    dedicated?:boolean;
    breakpoints?: T_obj;
    position?: any;
    media?: T_media;
    wing?: T_wing;
    arrow?: B extends 1 ? (T_arrow | boolean) : T_arrow;
    tools?: B extends 1 ? (T_tools | boolean) : T_tools;
    footer?: B extends 1 ? (T_footer | boolean) : T_footer;
    b4Hide?:T_fn;
    b4Show?:T_fn;
    b4Confirm?:T_fn;
    b4Cancel?:T_fn;
    b4Fill?: T_fn;
    onShow?: T_fn;
    onHide?: T_fn;
    onConfirm?:T_fn;
    onCancel?:T_fn;
    onValid?: T_fn;
    onUpdateCont?: T_fn;
    onTransfer?: T_fn;
    onReposition?: T_fn;
    onRequest?:T_fn;
}
