import { IObject } from "@daybrush/utils";
import MoveableManager from "./MoveableManager";
import { MoveableManagerState } from "./types";
export declare function multiply2(pos1: number[], pos2: number[]): number[];
export declare function prefix(...classNames: string[]): string;
export declare function createIdentityMatrix3(): number[];
export declare function getTransform(target: SVGElement | HTMLElement, isInit: true): number[];
export declare function getTransform(target: SVGElement | HTMLElement, isInit?: false): "none" | number[];
export declare function getTransformMatrix(transform: string | number[]): number[];
export declare function getAbsoluteMatrix(matrix: number[], n: number, origin: number[]): number[];
export declare function measureSVGSize(el: SVGElement, unit: string, isHorizontal: boolean): number;
export declare function getBeforeTransformOrigin(el: SVGElement): number[];
export declare function getTransformOrigin(style: CSSStyleDeclaration): string[];
export declare function caculateMatrixStack(target: SVGElement | HTMLElement, container: SVGElement | HTMLElement | null, prevMatrix?: number[], prevN?: number): [number[], number[], number[], number[], string, number[], boolean];
export declare function getSVGMatrix(el: SVGSVGElement, n: number): number[];
export declare function getSVGGraphicsOffset(el: SVGGraphicsElement, origin: number[]): number[];
export declare function caculatePosition(matrix: number[], pos: number[], n: number): number[];
export declare function caculatePoses(matrix: number[], width: number, height: number, n: number): number[][];
export declare function getRect(poses: number[][]): {
    left: number;
    top: number;
    right: number;
    bottom: number;
    width: number;
    height: number;
};
export declare function caculateRect(matrix: number[], width: number, height: number, n: number): {
    left: number;
    top: number;
    right: number;
    bottom: number;
    width: number;
    height: number;
};
export declare function getSVGOffset(el: SVGElement, container: HTMLElement | SVGElement | null, n: number, origin: number[], beforeMatrix: number[], absoluteMatrix: number[]): number[];
export declare function caculateMoveablePosition(matrix: number[], origin: number[], width: number, height: number): [number[], number[], number[], number[], number[], number[], 1 | -1];
export declare function getLineStyle(pos1: number[], pos2: number[]): {
    transform: string;
    width: string;
};
export declare function getControlTransform(...poses: number[][]): {
    transform: string;
};
export declare function getSize(target: SVGElement | HTMLElement, style?: CSSStyleDeclaration, isOffset?: boolean, isBoxSizing?: boolean): number[];
export declare function getTargetInfo(target?: HTMLElement | SVGElement, container?: HTMLElement | SVGElement, state?: Partial<MoveableManagerState> | false | undefined): Partial<MoveableManagerState>;
export declare function getDirection(target: SVGElement | HTMLElement): number[] | undefined;
export declare function getAbsolutePoses(poses: number[][], dist: number[]): number[][];
export declare function getAbsolutePosesByState({ left, top, pos1, pos2, pos3, pos4, }: {
    left: number;
    top: number;
    pos1: number[];
    pos2: number[];
    pos3: number[];
    pos4: number[];
}): number[][];
export declare function throttle(num: number, unit: number): number;
export declare function throttleArray(nums: number[], unit: number): number[];
export declare function unset(self: any, name: string): void;
export declare function getOrientationDirection(pos: number[], pos1: number[], pos2: number[]): number;
export declare function isInside(pos: number[], pos1: number[], pos2: number[], pos3: number[], pos4: number[]): boolean;
export declare function triggerEvent<T extends IObject<any>, U extends keyof T & string>(moveable: MoveableManager<T>, name: U, e: T[U] extends ((e: infer P) => any) | undefined ? P : {}): any;
export declare function getComputedStyle(el: HTMLElement | SVGElement, pseudoElt?: string | null): CSSStyleDeclaration;
