declare module '@interactjs/core/scope' { interface Scope { modifiers?: any; } } declare module '@interactjs/core/Interaction' { interface Interaction { modifiers?: { states: ModifierState[]; startOffset: Interact.Rect; startDelta: Interact.Point; result?: ModifiersResult; endResult: Interact.Point | void; }; } } declare module '@interactjs/core/InteractEvent' { interface InteractEvent { modifiers?: Array<{ name: string; [key: string]: any; }>; } } declare module '@interactjs/core/defaultOptions' { interface PerActionDefaults { modifiers?: Modifier[]; } } export interface Modifier { options?: Defaults; methods: { start?: (arg: ModifierArg) => void; set: (arg: ModifierArg) => void; beforeEnd?: (arg: ModifierArg) => Interact.Point | void; stop?: (arg: ModifierArg) => void; }; name?: Name; } export declare type ModifierState = { options: Defaults; methods?: Modifier['methods']; index?: number; name?: Name; result?: object; } & StateProps; export interface ModifierArg { interaction: Interact.Interaction; interactable: Interact.Interactable; phase: Interact.EventPhase; rect: Interact.FullRect; edges: Interact.EdgeOptions; states?: State[]; state?: State; element: Interact.Element; pageCoords?: Interact.Point; prevCoords?: Interact.Point; prevRect?: Interact.FullRect; coords?: Interact.Point; startOffset?: Interact.Rect; preEnd?: boolean; requireEndOnly?: boolean; } export interface ModifierModule { defaults?: Defaults; start?(arg: ModifierArg): void; set?(arg: ModifierArg): any; beforeEnd?(arg: ModifierArg): Interact.Point | void; stop?(arg: ModifierArg): void; } export interface ModifiersResult { delta: { x: number; y: number; }; rectDelta: { left: number; right: number; top: number; bottom: number; }; coords: Interact.Point; rect: Interact.FullRect; eventProps: any[]; changed: boolean; } export declare function startAll(arg: ModifierArg): void; export declare function setAll(arg: ModifierArg): ModifiersResult; export declare function prepareStates(modifierList: Modifier[]): { options: {}; methods?: { start?: (arg: ModifierArg) => void; set: (arg: ModifierArg) => void; beforeEnd?: (arg: ModifierArg) => void | import("@interactjs/types/types").Point; stop?: (arg: ModifierArg) => void; }; index?: number; name?: any; result?: object; }[]; export declare function setCoords(arg: { interaction: Interact.Interaction; phase: Interact.EventPhase; rect?: Interact.Rect; }): void; export declare function restoreCoords({ interaction: { coords, rect, modifiers } }: { interaction: Interact.Interaction; }): void; export declare function shouldDo(options: any, preEnd?: boolean, requireEndOnly?: boolean, phase?: string): any; export declare function getRectOffset(rect: any, coords: any): { left: number; top: number; right: number; bottom: number; }; export declare function makeModifier(module: ModifierModule, name?: Name): { (_options?: Partial): Modifier; _defaults: Defaults; _methods: { start: (arg: ModifierArg) => void; set: (arg: ModifierArg) => any; beforeEnd: (arg: ModifierArg) => void | import("@interactjs/types/types").Point; stop: (arg: ModifierArg) => void; }; }; declare const modifiersBase: Interact.Plugin; export default modifiersBase;