import { OnChange, OnFinish, OnHold, OnRelease } from "@egjs/axes"; import { ComponentEvent } from "@egjs/component"; import Flicking from "../Flicking"; import Panel from "../core/panel/Panel"; import { EVENTS, DIRECTION } from "../const/external"; import { ValueOf } from "../type/internal"; export declare type ReadyEvent = ComponentEvent<{}, typeof EVENTS["READY"], T>; export interface BeforeResizeEvent extends ComponentEvent<{}, typeof EVENTS["BEFORE_RESIZE"], T> { width: number; height: number; element: HTMLElement; } export interface AfterResizeEvent extends ComponentEvent<{}, typeof EVENTS["AFTER_RESIZE"], T> { width: number; height: number; prev: { width: number; height: number; }; sizeChanged: boolean; element: HTMLElement; } export interface HoldStartEvent extends ComponentEvent<{}, typeof EVENTS["HOLD_START"], T> { axesEvent: OnHold; } export interface HoldEndEvent extends ComponentEvent<{}, typeof EVENTS["HOLD_END"], T> { axesEvent: OnRelease; } export interface MoveStartEvent extends ComponentEvent<{}, typeof EVENTS["MOVE_START"], T> { isTrusted: boolean; holding: boolean; direction: ValueOf; axesEvent: OnChange; } export interface MoveEvent extends ComponentEvent<{}, typeof EVENTS["MOVE"], T> { isTrusted: boolean; holding: boolean; direction: ValueOf; axesEvent: OnChange; } export interface MoveEndEvent extends ComponentEvent<{}, typeof EVENTS["MOVE_END"], T> { isTrusted: boolean; direction: ValueOf; axesEvent: OnFinish; } export interface WillChangeEvent extends ComponentEvent<{}, typeof EVENTS["WILL_CHANGE"], T> { index: number; panel: Panel; isTrusted: boolean; direction: ValueOf; } export interface ChangedEvent extends ComponentEvent<{}, typeof EVENTS["CHANGED"], T> { index: number; panel: Panel; prevIndex: number; prevPanel: Panel | null; isTrusted: boolean; direction: ValueOf; } export interface WillRestoreEvent extends ComponentEvent<{}, typeof EVENTS["WILL_RESTORE"], T> { index: number; panel: Panel; isTrusted: boolean; direction: ValueOf; } export interface RestoredEvent extends ComponentEvent<{}, typeof EVENTS["RESTORED"], T> { isTrusted: boolean; } export interface SelectEvent extends ComponentEvent<{}, typeof EVENTS["SELECT"], T> { index: number; panel: Panel; direction: ValueOf | null; } export interface NeedPanelEvent extends ComponentEvent<{}, typeof EVENTS["NEED_PANEL"], T> { direction: Exclude, null>; } export interface VisibleChangeEvent extends ComponentEvent<{}, typeof EVENTS["VISIBLE_CHANGE"], T> { added: Panel[]; removed: Panel[]; visiblePanels: Panel[]; } export interface ReachEdgeEvent extends ComponentEvent<{}, typeof EVENTS["REACH_EDGE"], T> { direction: ValueOf; } export interface PanelChangeEvent extends ComponentEvent<{}, typeof EVENTS["PANEL_CHANGE"], T> { added: Panel[]; removed: Panel[]; }