import { T_el, T_fn_cb, T_opt_base, T_sel } from "./ax";
type T_scroll_snap = {
    enable?:boolean,
    mode?:'auto'|'manual',
    selector?:T_sel|T_el[],
    force?:boolean,
}
type T_scroll_drift = {
    enable?:boolean,
    mode?:'auto'|'snap'|'ratio'|'const',
    value?:number,
    coef?:number,
}
type T_scroll_wheel = {
    enable?:boolean,
    mode:'snap'|'ratio'|'const',
    value?:number,
    reverse?:boolean,
}
type T_scroll_bar = {
    enable?:boolean,
    sticky?:boolean,
    triggerable?:boolean,
}
export interface T_scroll<B = 1> extends T_opt_base{
    wrapper?: T_sel;
    axis?: 'x'|'y',
    dmpRatio?: number,
    transInit?: number,
    toInitMode?: 'scroll'|'locate';
    duration?: number,
    paddingStart?: number,
    paddingEnd?: number,
    insertable?: boolean,
    bounce?: boolean,
    gridded?: boolean,
    completedThr?:number,
    gesture?:T_obj,
    bar?: B extends 1 ? (T_scroll_bar | boolean) : T_scroll_bar,
    snap?: B extends 1 ? (T_scroll_snap | boolean) : T_scroll_snap,
    drift?: B extends 1 ? (T_scroll_drift | boolean) : T_scroll_drift,
    wheel?: B extends 1 ? (T_scroll_wheel | boolean) : T_scroll_wheel,
    b4ToStart?: T_fn,
    b4ToEnd?: T_fn,
    onDo?: T_fn;
    onDoing?: T_fn;
    onDone?:T_fn;
    onCompleted?:T_fn;
    onExceed?: T_fn;
    onToStart?:T_fn;
    onToEnd?:T_fn;
    onRefactored?:T_fn;
    onSnap?:T_fn;
    onSnapped?:T_fn;
    onResized?:T_fn;
    onScroll?:T_fn;
    onScrolled?:T_fn;
    onLocate?:T_fn;
    onLocated?:T_fn;
}
