import type { ViewStyle } from 'react-native'; import type { SpacingScaleKey } from './flexbox'; import type { DynamicSingleFn, DynamicSpacingFn } from './maps'; export type Padding = Pick; export type Margin = Pick; export type SpacingScaleOrAuto = SpacingScaleKey | 'auto'; type PaddingPrefix = 'px' | 'py' | 'pt' | 'pr' | 'pb' | 'pl' | 'ps' | 'pe' | 'p'; export type PaddingStaticToken = { [P in PaddingPrefix]: `${P}_${SpacingScaleOrAuto}`; }[PaddingPrefix]; type MarginPrefix = 'mx' | 'my' | 'mt' | 'mr' | 'mb' | 'ml' | 'ms' | 'me' | 'm'; export type MarginStaticToken = { [P in MarginPrefix]: `${P}_${SpacingScaleOrAuto}`; }[MarginPrefix]; export interface PaddingHelpers { p_: DynamicSpacingFn; px_: DynamicSingleFn; py_: DynamicSingleFn; pt_: DynamicSingleFn; pr_: DynamicSingleFn; pb_: DynamicSingleFn; pl_: DynamicSingleFn; ps_: DynamicSingleFn; pe_: DynamicSingleFn; } export type PaddingStyles = PaddingHelpers & Record & Record | DynamicSpacingFn>; export interface MarginHelpers { m_: DynamicSpacingFn; mx_: DynamicSingleFn; my_: DynamicSingleFn; mt_: DynamicSingleFn; mr_: DynamicSingleFn; mb_: DynamicSingleFn; ml_: DynamicSingleFn; ms_: DynamicSingleFn; me_: DynamicSingleFn; } export type MarginStyles = MarginHelpers & Record & Record | DynamicSpacingFn>;