UNPKG

gsap

Version:

GSAP is a JavaScript library for building high-performance animations that work in **every** major browser. Animate CSS, SVG, canvas, React, Vue, WebGL, colors, strings, motion paths, generic objects...anything JavaScript can touch! No other library deliv

260 lines (213 loc) 7.24 kB
declare namespace gsap { type RegisterablePlugins = | Ease | EasePack | ExpoScaleEase | Plugin | RoughEase | SteppedEase | VelocityTracker | typeof core.Animation | typeof core.Tween | typeof core.Timeline | typeof Draggable; // querySelector returns type Element | null type DOMTarget = Element | string | null | ArrayLike<Element | string | null>; type TweenTarget = string | object | null; type Callback = (...args: any[]) => void; type CallbackType = "onComplete" | "onRepeat" | "onReverseComplete" | "onStart" | "onUpdate"; type TickerCallback = (time: number, deltaTime: number, frame: number, elapsed: number) => void; type Point2D = { x: number, y: number }; type Position = number | string; type FunctionBasedValue<T> = (index: number, target: any, targets: any[]) => T; type ArrayValue = any[] | FunctionBasedValue<any[]>; type BooleanValue = boolean | FunctionBasedValue<boolean>; type NumberValue = number | FunctionBasedValue<number>; type StringValue = string | FunctionBasedValue<string>; type TweenValue = NumberValue | StringValue; interface AnimationVars extends CallbackVars { [key: string]: any; data?: any; id?: string | number; inherit?: boolean; paused?: boolean; repeat?: number; repeatDelay?: number; reversed?: boolean; yoyo?: boolean; } interface CallbackVars { callbackScope?: object; onComplete?: Callback; onCompleteParams?: any[]; onRepeat?: Callback; onRepeatParams?: any[]; onReverseComplete?: Callback; onReverseCompleteParams?: any[]; onStart?: Callback; onStartParams?: any[]; onUpdate?: Callback; onUpdateParams?: any[]; } interface EaseMap { [key: string]: EaseFunction; } interface EffectsMap { [key: string]: any; } interface GSAPConfig { autoKillThreshold?: number; autoSleep?: number; force3D?: "auto" | boolean; nullTargetWarn?: boolean; resistance?: number; stringFilter?: Callback; // TODO: Find out signature unitFactors?: { time?: number, totalTime?: number }; units?: GSAPUnits } type GSAPUnits = { bottom?: string fontSize?: string height?: string left?: string lineHeight?: string margin?: string padding?: string perspective?: string right?: string rotation?: string rotationX?: string rotationY?: string skewX?: string skewY?: string top?: string width?: string x?: string y?: string z?: string } & { [key: string]: string } interface StaggerVars extends CallbackVars, utils.DistributeConfig { repeat?: number; repeatDelay?: number; yoyo?: boolean; yoyoEase?: boolean | string | EaseFunction; } interface Ticker { add(callback: TickerCallback): void; fps(fps: number): void; frame: number; lagSmoothing(threshold: number, adjustedLag?: number): void; remove(callback: Callback): void; sleep(): void; tick(): void; time: number; wake(): void; } interface TimelineVars extends AnimationVars { autoRemoveChildren?: boolean; defaults?: TweenVars; delay?: number; smoothChildTiming?: boolean; } interface TweenVars extends AnimationVars { delay?: TweenValue; duration?: TweenValue; ease?: string | EaseFunction; immediateRender?: boolean; lazy?: boolean; keyframes?: TweenVars[]; onInterrupt?: Callback; onInterruptParams?: any[]; overwrite?: "auto" | boolean; repeatRefresh?: boolean; runBackwards?: boolean; stagger?: NumberValue | StaggerVars; startAt?: TweenVars; yoyoEase?: boolean | string | EaseFunction; } const effects: EffectsMap; const globalTimeline: core.Timeline; const ticker: Ticker; const version: string; function config(config: GSAPConfig): GSAPConfig; function config(): GSAPConfig; function defaults(defauts: TweenVars): TweenVars; function defaults(): TweenVars; function delayedCall(delay: number, callback: Callback, params?: any[], scope?: object): core.Tween; function exportRoot(vars?: TimelineVars, includeDelayedCalls?: boolean): core.Timeline; function from(targets: TweenTarget, vars: TweenVars): core.Tween; function from(targets: TweenTarget, duration: number, vars:TweenVars): core.Tween; function fromTo(targets: TweenTarget, fromVars: TweenVars, toVars: TweenVars): core.Tween; function fromTo(targets: TweenTarget, duration: number, fromVars: TweenVars, toVars: TweenVars): core.Tween; function getById<T extends core.Animation>(id: string | number): T; function getProperty(targets: TweenTarget, property: string, unit?: string): string | number; function getProperty(targets: TweenTarget): (property: string, unit?: string) => string | number; function getTweensOf(targets: TweenTarget, onlyActive?: boolean): core.Tween[]; function install(targets: object): typeof gsap; function isTweening(targets: TweenTarget): boolean; function killTweensOf(targets: TweenTarget, properties?: object | string, onlyActive?: boolean): void; function parseEase(ease: string | EaseFunction): EaseFunction; function parseEase(): EaseMap; function registerEase(config: { name: string, ease: EaseFunction }): void; // TODO: Create interface for effect function registerEffect(effect: object): void; function registerPlugin(...args: RegisterablePlugins[]): void; function set(targets: TweenTarget, vars: TweenVars): core.Tween; /** * * * @param {object} [vars] * @returns {Timeline} Timeline instance * @memberof gsap */ function timeline(vars?: TimelineVars): core.Timeline; /** * Creates an animation * * ```js * var tween = gsap.to(".class", { x: 100 }); * ``` * * @param {*} targets * @param {object} vars * @returns {Tween} Tween instance * @memberof gsap */ function to(targets: TweenTarget, vars: TweenVars): core.Tween; /** * **Deprecated method signature.** Use the `duration` property instead. * ```js * tl.to(".class", { duration: 1, x: 100 }); * ``` * @deprecated since version 2 * @param {*} targets * @param {number} duration - The duration parameter is deprecated. Use the `duration` * property instead. * @param {TweenVars} vars */ function to(targets: TweenTarget, duration: number, vars: TweenVars): core.Tween; function updateRoot(time: number): void; } // TODO: Move to files where declared declare class TweenLite extends gsap.core.Tween {} declare class TweenMax extends gsap.core.Tween {} declare class TimelineLite extends gsap.core.Timeline {} declare class TimelineMax extends gsap.core.Timeline {} declare module "gsap/gsap-core" { const _gsap: typeof gsap; // TODO: Move to files where declared export class TweenLite extends gsap.core.Tween {} export class TweenMax extends gsap.core.Tween {} export class TimelineLite extends gsap.core.Timeline {} export class TimelineMax extends gsap.core.Timeline {} export { _gsap as gsap, _gsap as default } } declare module "gsap/src/gsap-core" { export * from "gsap/gsap-core"; export { gsap as default } from "gsap/gsap-core"; }