import type { ColorValue, ImageSourcePropType } from 'react-native'; import type { SFSymbol } from 'sf-symbols-typescript'; import type { NativeTabsLabelStyle } from '../NativeBottomTabs/types'; export interface LabelProps { /** * The text to display as the label for the tab. */ children?: string; selectedStyle?: NativeTabsLabelStyle; /** * If true, the label will be hidden. * @default false */ hidden?: boolean; } export declare function Label(props: LabelProps): null; export interface SourceIconCombination { /** * The image source to use as an icon. * * The value can be provided in two ways: * - As an image source * - As an object specifying the default and selected states * * @example * ```tsx * * ``` * * @example * ```tsx * * ``` * * @platform Android * @platform iOS */ src?: ImageSourcePropType | React.ReactElement | { default?: ImageSourcePropType | React.ReactElement; selected: ImageSourcePropType | React.ReactElement; }; drawable?: never; sf?: never; androidSrc?: never; } export interface NamedIconCombination { /** * The name of the SF Symbol to use as an icon. * * The value can be provided in two ways: * - As a string with the SF Symbol name * - As an object specifying the default and selected states * * @example * ```tsx * * ``` * * @example * ```tsx * * ``` * * @platform iOS */ sf?: SFSymbol | { default?: SFSymbol; selected: SFSymbol; }; /** * The name of the drawable resource to use as an icon. * @platform android */ drawable?: string; src?: never; androidSrc?: never; } export interface CrossPlatformIconCombination { /** * The name of the SF Symbol to use as an icon on iOS. * * The value can be provided in two ways: * - As a string with the SF Symbol name * - As an object specifying the default and selected states * * @example * ```tsx * * ``` * * @example * ```tsx * * ``` * * @platform iOS */ sf?: SFSymbol | { default?: SFSymbol; selected: SFSymbol; }; /** * The image source to use as an icon on Android. * * The value can be provided in two ways: * - As an image source * - As an object specifying the default and selected states * * @example * ```tsx * * ``` * * @example * ```tsx * * ``` * * @platform Android */ androidSrc?: ImageSourcePropType | React.ReactElement | { default?: ImageSourcePropType | React.ReactElement; selected: ImageSourcePropType | React.ReactElement; }; src?: never; drawable?: never; } export type IconProps = { selectedColor?: ColorValue; } & (NamedIconCombination | SourceIconCombination | CrossPlatformIconCombination); /** * Renders an icon for the tab. * * @platform ios * @platform android */ export declare function Icon(props: IconProps): null; export interface VectorIconProps { /** * The family of the vector icon. * * @example * ```tsx * import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons'; * ``` */ family: { getImageSource: (name: NameT, size: number, color: ColorValue) => Promise; }; /** * The name of the vector icon. */ name: NameT; } /** * Helper component which can be used to load vector icons for `NativeTabs`. * * @example * ```tsx * import { NativeTabs, VectorIcon } from 'expo-router'; * import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons'; * * export default Layout(){ * return ( * * * } /> * * * ); * } * ``` */ export declare function VectorIcon(props: VectorIconProps): null; export interface BadgeProps { /** * The text to display as the badge for the tab. * If not provided, the badge will not be displayed. */ children?: string; /** * If true, the badge will be hidden. * @default false */ hidden?: boolean; selectedBackgroundColor?: ColorValue; } export declare function Badge(props: BadgeProps): null; //# sourceMappingURL=elements.d.ts.map