import type { StyleProp } from 'react-native'; import type { AnimatedStyle, EntryExitAnimationFunction, LayoutAnimationFunction, SharedValue } from './commonTypes'; import type { NestedArray } from './createAnimatedComponent/commonTypes'; import type { CSSStyle } from './css'; import type { BaseAnimationBuilder } from './layoutReanimation/animationBuilder/BaseAnimationBuilder'; import type { ReanimatedKeyframe } from './layoutReanimation/animationBuilder/Keyframe'; import type { SharedTransition } from './layoutReanimation/SharedTransition'; export type EntryOrExitLayoutType = BaseAnimationBuilder | typeof BaseAnimationBuilder | EntryExitAnimationFunction | ReanimatedKeyframe; type PickStyleProps = Pick; type AnimatedStyleProps = { [Key in keyof PickStyleProps]: StyleProp>; }; /** Component props that are not specially handled by us. */ type ComponentPropsWithoutStyle = Omit | 'style'>; type RestProps = { [K in keyof ComponentPropsWithoutStyle]: Props[K] | SharedValue; }; type LayoutProps = { /** * Lets you animate the layout changes when components are added to or removed * from the view hierarchy. * * You can use the predefined layout transitions (eg. `LinearTransition`, * `FadingTransition`) or create your own ones. * * @see https://docs.swmansion.com/react-native-reanimated/docs/layout-animations/layout-transitions */ layout?: BaseAnimationBuilder | LayoutAnimationFunction | typeof BaseAnimationBuilder; /** * Lets you animate an element when it's added to or removed from the view * hierarchy. * * You can use the predefined entering animations (eg. `FadeIn`, * `SlideInLeft`) or create your own ones. * * @see https://docs.swmansion.com/react-native-reanimated/docs/layout-animations/entering-exiting-animations */ entering?: EntryOrExitLayoutType; /** * Lets you animate an element when it's added to or removed from the view * hierarchy. * * You can use the predefined entering animations (eg. `FadeOut`, * `SlideOutRight`) or create your own ones. * * @see https://docs.swmansion.com/react-native-reanimated/docs/layout-animations/entering-exiting-animations */ exiting?: EntryOrExitLayoutType; }; type SharedTransitionProps = { sharedTransitionTag?: string; sharedTransitionStyle?: SharedTransition; }; export type AnimatedProps = RestProps & AnimatedStyleProps & LayoutProps & { /** * Lets you animate component props. * * @see https://docs.swmansion.com/react-native-reanimated/docs/core/useAnimatedProps */ animatedProps?: NestedArray>>>; } & SharedTransitionProps; export {}; //# sourceMappingURL=helperTypes.d.ts.map