export class AutoLayout { /** * @param {DOMTargetSelector} root * @param {AutoLayoutParams} [params] */ constructor(root: DOMTargetSelector, params?: AutoLayoutParams); /** @type {AutoLayoutParams} */ params: AutoLayoutParams; /** @type {DOMTarget} */ root: DOMTarget; /** @type {Number} */ id: number; /** @type {LayoutChildrenParam} */ children: LayoutChildrenParam; /** @type {Boolean} */ absoluteCoords: boolean; /** @type {LayoutStateParams} */ swapAtParams: LayoutStateParams; /** @type {LayoutStateParams} */ enterFromParams: LayoutStateParams; /** @type {LayoutStateParams} */ leaveToParams: LayoutStateParams; /** @type {Set} */ properties: Set; /** @type {Set} */ recordedProperties: Set; /** @type {WeakSet} */ pendingRemoval: WeakSet; /** @type {Map} */ transitionMuteStore: Map; /** @type {LayoutSnapshot} */ oldState: LayoutSnapshot; /** @type {LayoutSnapshot} */ newState: LayoutSnapshot; /** @type {Timeline} */ timeline: Timeline; /** @type {WAAPIAnimation} */ transformAnimation: WAAPIAnimation; /** @type {Array} */ animating: Array; /** @type {Array} */ swapping: Array; /** @type {Array} */ leaving: Array; /** @type {Array} */ entering: Array; /** * @return {this} */ revert(): this; /** * @return {this} */ record(): this; /** * @param {LayoutAnimationParams} [params] * @return {Timeline} */ animate(params?: LayoutAnimationParams): Timeline; /** * @param {(layout: this) => void} callback * @param {LayoutAnimationParams} [params] * @return {Timeline} */ update(callback: (layout: this) => void, params?: LayoutAnimationParams): Timeline; } export function createLayout(root: DOMTargetSelector, params?: AutoLayoutParams): AutoLayout; export type LayoutChildrenParam = DOMTargetSelector | Array; export type LayoutAnimationTimingsParams = { delay?: number | FunctionValue; duration?: number | FunctionValue; ease?: EasingParam | FunctionValue; }; export type LayoutStateAnimationProperties = Record; export type LayoutStateParams = LayoutStateAnimationProperties & LayoutAnimationTimingsParams; export type LayoutSpecificAnimationParams = { delay?: number | FunctionValue; duration?: number | FunctionValue; ease?: EasingParam | FunctionValue; playbackEase?: EasingParam; swapAt?: LayoutStateParams; enterFrom?: LayoutStateParams; leaveTo?: LayoutStateParams; }; export type LayoutAnimationParams = LayoutSpecificAnimationParams & TimerParams & TickableCallbacks & RenderableCallbacks; export type LayoutOptions = { children?: LayoutChildrenParam; properties?: Array; }; export type AutoLayoutParams = LayoutAnimationParams & LayoutOptions; export type LayoutNodeProperties = Record & { transform: string; x: number; y: number; left: number; top: number; clientLeft: number; clientTop: number; width: number; height: number; }; export type LayoutNode = { id: string; $el: DOMTarget; index: number; total: number; delay: number; duration: number; ease: EasingParam; $measure: DOMTarget; state: LayoutSnapshot; layout: AutoLayout; parentNode: LayoutNode | null; isTarget: boolean; isEntering: boolean; isLeaving: boolean; hasTransform: boolean; inlineStyles: Array; inlineTransforms: string | null; inlineTransition: string | null; branchAdded: boolean; branchRemoved: boolean; branchNotRendered: boolean; sizeChanged: boolean; isInlined: boolean; hasVisibilitySwap: boolean; hasDisplayNone: boolean; hasVisibilityHidden: boolean; measuredInlineTransform: string | null; measuredInlineTransition: string | null; measuredDisplay: string | null; measuredVisibility: string | null; measuredPosition: string | null; measuredHasDisplayNone: boolean; measuredHasVisibilityHidden: boolean; measuredIsVisible: boolean; measuredIsRemoved: boolean; measuredIsInsideRoot: boolean; properties: LayoutNodeProperties; _head: LayoutNode | null; _tail: LayoutNode | null; _prev: LayoutNode | null; _next: LayoutNode | null; }; export type LayoutNodeIterator = (node: LayoutNode, index: number) => void; import type { DOMTarget } from '../types/index.js'; declare class LayoutSnapshot { /** * @param {AutoLayout} layout */ constructor(layout: AutoLayout); /** @type {AutoLayout} */ layout: AutoLayout; /** @type {LayoutNode|null} */ rootNode: LayoutNode | null; /** @type {Set} */ rootNodes: Set; /** @type {Map} */ nodes: Map; /** @type {Number} */ scrollX: number; /** @type {Number} */ scrollY: number; /** * @return {this} */ revert(): this; /** * @param {DOMTarget} $el * @return {LayoutNode} */ getNode($el: DOMTarget): LayoutNode; /** * @param {DOMTarget} $el * @param {String} prop * @return {Number|String} */ getComputedValue($el: DOMTarget, prop: string): number | string; /** * @param {LayoutNode|null} rootNode * @param {LayoutNodeIterator} cb */ forEach(rootNode: LayoutNode | null, cb: LayoutNodeIterator): void; /** * @param {LayoutNodeIterator} cb */ forEachRootNode(cb: LayoutNodeIterator): void; /** * @param {LayoutNodeIterator} cb */ forEachNode(cb: LayoutNodeIterator): void; /** * @param {DOMTarget} $el * @param {LayoutNode|null} parentNode * @return {LayoutNode|null} */ registerElement($el: DOMTarget, parentNode: LayoutNode | null): LayoutNode | null; /** * @param {DOMTarget} $el * @param {Set} candidates * @return {LayoutNode|null} */ ensureDetachedNode($el: DOMTarget, candidates: Set): LayoutNode | null; /** * @return {this} */ record(): this; } import type { Timeline } from '../timeline/timeline.js'; import type { WAAPIAnimation } from '../waapi/waapi.js'; import type { DOMTargetSelector } from '../types/index.js'; import type { FunctionValue } from '../types/index.js'; import type { EasingParam } from '../types/index.js'; import type { TimerParams } from '../types/index.js'; import type { TickableCallbacks } from '../types/index.js'; import type { RenderableCallbacks } from '../types/index.js'; export {};