export declare type Hook = (props: T) => void; export interface Slider { element: HTMLElement; wrapper: HTMLElement; wrapperPosition: number; slides: HTMLElement[]; slideStyles: Record; slideWidth: number; slideHeight?: number; activeView: number; slidesPerView: number; spaceBetween: number; direction?: 'vertical'; middlewares: Middleware[]; next: () => void; prev: () => void; render: () => void; slideTo: (index: number, silent?: boolean) => void; updateSlideStyles: () => void; scrollWrapperTo: (y: number) => void; onSlideChange: (callback: Hook) => void; onBeforeSlideChange: (callback: Hook) => void; onCleanUp: (callback: Hook) => void; removeSlideChangeHook: (hook: Hook) => void; removeBeforeSlideChangeHook: (hook: Hook) => void; removeCleanUpHook: (hook: Hook) => void; runBeforeSlideChangeHooks: (slider: Slider) => void; runSlideChangeHooks: (slider: Slider) => void; } export declare type Middleware = { name: string; callback: (slider: Slider) => void; };