react-native-reanimated
Version:
More powerful alternative to Animated library for React Native.
42 lines • 2.25 kB
TypeScript
import type { CSSTimingFunction } from '../easings';
import type { PlainStyle, 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 = PlainStyle> = 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';
export type SingleCSSAnimationSettings = {
animationDuration?: CSSAnimationDuration;
animationTimingFunction?: CSSAnimationTimingFunction;
animationDelay?: CSSAnimationDelay;
animationIterationCount?: CSSAnimationIterationCount;
animationDirection?: CSSAnimationDirection;
animationFillMode?: CSSAnimationFillMode;
animationPlayState?: CSSAnimationPlayState;
};
export type SingleCSSAnimationProperties<S extends object = PlainStyle> = SingleCSSAnimationSettings & {
animationName: CSSKeyframesRule | CSSAnimationKeyframes<S>;
};
export type CSSAnimationSettings = AddArrayPropertyTypes<SingleCSSAnimationSettings>;
export type CSSAnimationProperties<S extends object = PlainStyle> = CSSAnimationSettings & {
animationName: AddArrayPropertyType<CSSKeyframesRule | CSSAnimationKeyframes<S>> | 'none';
};
export type ExistingCSSAnimationProperties<S extends object = PlainStyle> = CSSAnimationProperties<S> & {
animationName: AddArrayPropertyType<CSSKeyframesRule | CSSAnimationKeyframes<S>>;
};
export type CSSAnimationProp = keyof CSSAnimationProperties;
//# sourceMappingURL=animation.d.ts.map