import type { FontAwesomeIconName } from '@react-native-vector-icons/fontawesome/static'; import type { FontAwesome5BrandIconName, FontAwesome5RegularIconName, FontAwesome5SolidIconName } from '@react-native-vector-icons/fontawesome5/static'; import type { FontAwesome6BrandIconName, FontAwesome6RegularIconName, FontAwesome6SolidIconName } from '@react-native-vector-icons/fontawesome6/static'; import type { IoniconsIconName } from '@react-native-vector-icons/ionicons/static'; import type { MaterialDesignIconsIconName } from '@react-native-vector-icons/material-design-icons/static'; import type { StyleProp, TextStyle, ViewStyle } from 'react-native'; import type { SurfaceImageSource } from './image'; import type { SurfaceTheme } from './theme'; export type IconProvider = 'Ionicons' | 'FontAwesome' | 'FontAwesome5' | 'FontAwesome6' | 'MaterialDesignIcons'; export type IconVariant = 'regular' | 'solid' | 'brand'; export type FontIconSource = { name: IoniconsIconName; provider?: 'Ionicons'; variant?: never; } | { name: FontAwesomeIconName; provider: 'FontAwesome'; variant?: never; } | { name: FontAwesome5RegularIconName; provider: 'FontAwesome5'; variant: 'regular'; } | { name: FontAwesome5SolidIconName; provider: 'FontAwesome5'; variant: 'solid'; } | { name: FontAwesome5BrandIconName; provider: 'FontAwesome5'; variant: 'brand'; } | { name: FontAwesome6RegularIconName; provider: 'FontAwesome6'; variant: 'regular'; } | { name: FontAwesome6SolidIconName; provider: 'FontAwesome6'; variant: 'solid'; } | { name: FontAwesome6BrandIconName; provider: 'FontAwesome6'; variant: 'brand'; } | { name: MaterialDesignIconsIconName; provider: 'MaterialDesignIcons'; variant?: never; }; export interface SvgIconSource { source: SurfaceImageSource; name?: never; provider?: never; variant?: never; } export type IconSource = FontIconSource | SvgIconSource; interface IconPresentationProps { size?: keyof SurfaceTheme['spacing'] | number; color?: keyof SurfaceTheme['colors'] | string; testID?: string; } export type IconProps = (FontIconSource & IconPresentationProps & { style?: StyleProp; }) | (SvgIconSource & IconPresentationProps & { style?: StyleProp; }); export {}; //# sourceMappingURL=icon.d.ts.map