import Path from '../graphic/Path'; import Element, { ElementAnimateConfig } from '../Element'; import { split } from './dividePath'; export declare function alignBezierCurves(array1: number[][], array2: number[][]): number[][][]; export interface CombineMorphingPath extends Path { childrenRef(): (CombineMorphingPath | Path)[]; __isCombineMorphing: boolean; } export declare function centroid(array: number[]): number[]; export declare function isCombineMorphing(path: Element): path is CombineMorphingPath; export declare function isMorphing(el: Element): boolean; export declare function morphPath(fromPath: Path, toPath: Path, animationOpts: ElementAnimateConfig): Path; export interface DividePathParams { path: Path; count: number; } export interface DividePath { (params: DividePathParams): Path[]; } export interface IndividualDelay { (index: number, count: number, fromPath: Path, toPath: Path): number; } export interface CombineConfig extends ElementAnimateConfig { dividePath?: DividePath; individualDelay?: IndividualDelay; } export declare function combineMorph(fromList: (CombineMorphingPath | Path)[], toPath: Path, animationOpts: CombineConfig): { fromIndividuals: Path[]; toIndividuals: Path[]; count: number; }; export interface SeparateConfig extends ElementAnimateConfig { dividePath?: DividePath; individualDelay?: IndividualDelay; } export declare function separateMorph(fromPath: Path, toPathList: Path[], animationOpts: SeparateConfig): { fromIndividuals: Path[]; toIndividuals: Path[]; count: number; }; export { split as defaultDividePath };