UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

75 lines 3.52 kB
import type { DefaultStyle } from '../../hook/commonTypes'; import type { CSSTimingFunction } from '../easing'; import type { TimeUnit } from './common'; import type { AddArrayPropertyType, AddArrayPropertyTypes } from './helpers'; export interface CSSKeyframesRule { readonly cssRules: CSSAnimationKeyframes; readonly cssText: string; readonly length: number; readonly name: string; } export type CSSAnimationKeyframeSelector = string | number; export type CSSAnimationKeyframeBlock<S extends object> = S & { animationTimingFunction?: CSSAnimationTimingFunction; }; export type CSSAnimationKeyframes<S extends object = DefaultStyle> = Record<CSSAnimationKeyframeSelector, CSSAnimationKeyframeBlock<S>>; export type CSSAnimationDuration = TimeUnit; export type CSSAnimationTimingFunction = CSSTimingFunction; export type CSSAnimationDelay = TimeUnit; export type CSSAnimationIterationCount = 'infinite' | number; export type CSSAnimationDirection = 'normal' | 'reverse' | 'alternate' | 'alternate-reverse'; export type CSSAnimationFillMode = 'none' | 'forwards' | 'backwards' | 'both'; export type CSSAnimationPlayState = 'running' | 'paused'; /** Payload for a CSS animation callback. */ export type CSSAnimationEvent = { /** * The name of the keyframes that fired the event (matches the `name` of a * `css.keyframes(...)` rule). */ animationName: string; /** * The amount of time the animation had been running, in seconds, when the * event fired. */ elapsedTime: number; }; export type CSSAnimationCallback = (event: CSSAnimationEvent) => void; /** * Lifecycle callbacks of a **CSS animation**. `withTiming`, `withSpring` and * layout animations never fire them. */ export type CSSAnimationCallbacks = { /** Fired when the CSS animation starts, after any `animationDelay`. */ onCSSAnimationStart?: CSSAnimationCallback; /** Fired when the CSS animation completes. */ onCSSAnimationEnd?: CSSAnimationCallback; /** Fired at the end of each CSS animation iteration except the last. */ onCSSAnimationIteration?: CSSAnimationCallback; /** * Fired when the CSS animation is interrupted before completing, including * when the component unmounts. */ onCSSAnimationCancel?: CSSAnimationCallback; }; export type CSSAnimationCallbackProp = keyof CSSAnimationCallbacks; export type SingleCSSAnimationSettings = { animationDuration?: CSSAnimationDuration; animationTimingFunction?: CSSAnimationTimingFunction; animationDelay?: CSSAnimationDelay; animationIterationCount?: CSSAnimationIterationCount; animationDirection?: CSSAnimationDirection; animationFillMode?: CSSAnimationFillMode; animationPlayState?: CSSAnimationPlayState; }; export type SingleCSSAnimationProperties<S extends object = DefaultStyle> = SingleCSSAnimationSettings & { animationName: CSSKeyframesRule | CSSAnimationKeyframes<S>; }; export type CSSAnimationSettings = AddArrayPropertyTypes<SingleCSSAnimationSettings>; export type CSSAnimationProperties<S extends object = DefaultStyle> = CSSAnimationSettings & { animationName: AddArrayPropertyType<CSSKeyframesRule | CSSAnimationKeyframes<S>> | 'none'; }; export type ExistingCSSAnimationProperties<S extends object = DefaultStyle> = CSSAnimationProperties<S> & { animationName: AddArrayPropertyType<CSSKeyframesRule | CSSAnimationKeyframes<S>>; }; export type CSSAnimationProp = keyof CSSAnimationProperties; //# sourceMappingURL=animation.d.ts.map