import type { AnimationDefinition, Color, CoreTypes, Observable as NativeObservable, Style as NativeStyle, View, ViewBase } from '@nativescript/core'; import type { WatchValue } from '@watch-state/utils'; import type { ANIMATE_PARAMS, ANIMATE_PROPS } from '../constants'; export type Style = Omit; export type ObservableStyle = { [K in keyof Style]?: WatchValue; }; export type NSProp = T extends Color | CoreTypes.PercentLengthType ? T | string : T extends View ? T | JSX.Element : T; export type AnimatePropsParamsKey = typeof ANIMATE_PARAMS[number]; export type AnimatePropsKey = typeof ANIMATE_PROPS[number]; export type AnimateParamsKey = Exclude; export type AnimateParams = { [K in AnimateParamsKey]?: AnimationDefinition[K]; }; export type AnimateProp = Partial>>; export type AnimateProps = { [K in AnimatePropsKey]?: WatchValue; }; export type GetNSProps = { [K in keyof T]?: WatchValue>; }; export type Parent = T | T[];