import React from 'react';
import { type ColorValue, type StyleProp, type ViewStyle } from 'react-native';
import { type PathProps, type SvgProps } from 'react-native-svg';
import { gradients } from '../styles/tokens';
/**
 * Style prop for Bloom icons. Icons render via `<Svg>`, which is a View-like
 * host, so the style must be View-compatible. A `color` field is allowed as a
 * convenience for consumers who set fill via the CSS `color` shorthand (the
 * icon reads this as a fallback fill when no explicit `fill` prop is given).
 *
 * Note: we intentionally avoid `TextStyle` here — React Native 0.84 introduced
 * `cursor: CursorValue` on `ViewStyle` while `expo/types/react-native-web`
 * augments `TextStyle.cursor` to `string`, and the resulting invariance
 * breaks assignment of `StyleProp<TextStyle>` to `<Svg>`'s style slot.
 */
export type IconStyle = ViewStyle & {
    color?: ColorValue;
};
export type Props = {
    fill?: PathProps['fill'];
    style?: StyleProp<IconStyle>;
    size?: keyof typeof sizes;
    gradient?: keyof typeof gradients;
} & Omit<SvgProps, 'style' | 'size'>;
export declare const sizes: {
    readonly '2xs': 8;
    readonly xs: 12;
    readonly sm: 16;
    readonly md: 20;
    readonly lg: 24;
    readonly xl: 28;
    readonly '2xl': 32;
    readonly '3xl': 48;
};
export declare function useCommonSVGProps(props: Props): {
    style: false | "" | IconStyle | import("react-native").RecursiveArray<import("react-native").Falsy | IconStyle> | null;
    title?: string | undefined;
    children?: React.ReactNode;
    filter?: string | undefined;
    hitSlop?: number | import("react-native").Insets | undefined;
    id?: string | undefined;
    needsOffscreenAlphaCompositing?: boolean | undefined | undefined;
    onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | undefined;
    pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
    removeClippedSubviews?: boolean | undefined | undefined;
    testID?: string | undefined;
    nativeID?: string | undefined | undefined;
    collapsable?: boolean | undefined | undefined;
    collapsableChildren?: boolean | undefined | undefined;
    onBlur?: ((e: import("react-native").BlurEvent) => void) | null | undefined | undefined;
    onFocus?: ((e: import("react-native").FocusEvent) => void) | null | undefined | undefined;
    renderToHardwareTextureAndroid?: boolean | undefined | undefined;
    focusable?: boolean | undefined | undefined;
    tabIndex?: 0 | -1 | undefined | undefined;
    shouldRasterizeIOS?: boolean | undefined | undefined;
    isTVSelectable?: boolean | undefined | undefined;
    hasTVPreferredFocus?: boolean | undefined | undefined;
    tvParallaxShiftDistanceX?: number | undefined | undefined;
    tvParallaxShiftDistanceY?: number | undefined | undefined;
    tvParallaxTiltAngle?: number | undefined | undefined;
    tvParallaxMagnification?: number | undefined | undefined;
    onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined | undefined;
    onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined | undefined;
    onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined | undefined;
    onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined | undefined;
    onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined | undefined;
    onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | undefined | undefined;
    onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerMove?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerDown?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerUp?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | undefined | undefined;
    accessible?: boolean | undefined;
    accessibilityActions?: readonly Readonly<{
        name: import("react-native").AccessibilityActionName | string;
        label?: string | undefined;
    }>[] | undefined;
    accessibilityLabel?: string | undefined;
    'aria-label'?: string | undefined | undefined;
    accessibilityRole?: import("react-native").AccessibilityRole | undefined;
    accessibilityState?: import("react-native").AccessibilityState | undefined;
    'aria-busy'?: boolean | undefined | undefined;
    'aria-checked'?: boolean | "mixed" | undefined | undefined;
    'aria-disabled'?: boolean | undefined | undefined;
    'aria-expanded'?: boolean | undefined | undefined;
    'aria-selected'?: boolean | undefined | undefined;
    accessibilityHint?: string | undefined | undefined;
    accessibilityValue?: import("react-native").AccessibilityValue | undefined;
    'aria-valuemax'?: number | undefined;
    'aria-valuemin'?: number | undefined;
    'aria-valuenow'?: number | undefined;
    'aria-valuetext'?: string | undefined;
    onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | undefined | undefined;
    importantForAccessibility?: ("auto" | "yes" | "no" | "no-hide-descendants") | undefined | undefined;
    'aria-hidden'?: boolean | undefined | undefined;
    'aria-modal'?: boolean | undefined | undefined;
    role?: import("react-native").Role | undefined;
    accessibilityLabelledBy?: string | string[] | undefined | undefined;
    'aria-labelledby'?: string | undefined | undefined;
    accessibilityLiveRegion?: "none" | "polite" | "assertive" | undefined | undefined;
    'aria-live'?: ("polite" | "assertive" | "off") | undefined | undefined;
    screenReaderFocusable?: boolean | undefined | undefined;
    accessibilityElementsHidden?: boolean | undefined | undefined;
    accessibilityViewIsModal?: boolean | undefined | undefined;
    onAccessibilityEscape?: (() => void) | undefined | undefined;
    onAccessibilityTap?: (() => void) | undefined | undefined;
    onMagicTap?: (() => void) | undefined | undefined;
    accessibilityIgnoresInvertColors?: boolean | undefined | undefined;
    accessibilityLanguage?: string | undefined | undefined;
    accessibilityShowsLargeContentViewer?: boolean | undefined | undefined;
    accessibilityLargeContentTitle?: string | undefined | undefined;
    accessibilityRespondsToUserInteraction?: boolean | undefined | undefined;
    color?: ColorValue | undefined;
    scale?: import("react-native-svg").NumberArray | undefined;
    scaleX?: import("react-native-svg").NumberProp | undefined;
    scaleY?: import("react-native-svg").NumberProp | undefined;
    translateX?: import("react-native-svg").NumberProp | undefined;
    translateY?: import("react-native-svg").NumberProp | undefined;
    skewX?: import("react-native-svg").NumberProp | undefined;
    skewY?: import("react-native-svg").NumberProp | undefined;
    fontSize?: import("react-native-svg").NumberProp | undefined;
    fontWeight?: import("react-native-svg").FontWeight | undefined;
    fontStyle?: import("react-native-svg").FontStyle | undefined;
    width?: import("react-native-svg").NumberProp | undefined;
    height?: import("react-native-svg").NumberProp | undefined;
    viewBox?: string | undefined;
    preserveAspectRatio?: string | undefined;
    opacity?: import("react-native-svg").NumberProp | undefined;
    fillOpacity?: import("react-native-svg").NumberProp | undefined;
    fillRule?: import("react-native-svg").FillRule | undefined;
    stroke?: ColorValue | undefined;
    strokeWidth?: import("react-native-svg").NumberProp | undefined;
    strokeOpacity?: import("react-native-svg").NumberProp | undefined;
    strokeDasharray?: (ReadonlyArray<import("react-native-svg").NumberProp> | import("react-native-svg").NumberProp) | undefined;
    strokeDashoffset?: import("react-native-svg").NumberProp | undefined;
    strokeLinecap?: import("react-native-svg").Linecap | undefined;
    strokeLinejoin?: import("react-native-svg").Linejoin | undefined;
    strokeMiterlimit?: import("react-native-svg").NumberProp | undefined;
    vectorEffect?: import("react-native-svg").VectorEffect | undefined;
    clipRule?: import("react-native-svg").FillRule | undefined;
    clipPath?: string | undefined;
    translate?: import("react-native-svg").NumberArray | undefined;
    origin?: import("react-native-svg").NumberArray | undefined;
    originX?: import("react-native-svg").NumberProp | undefined;
    originY?: import("react-native-svg").NumberProp | undefined;
    skew?: import("react-native-svg").NumberArray | undefined;
    rotation?: import("react-native-svg").NumberProp | undefined;
    x?: import("react-native-svg").NumberArray | undefined;
    y?: import("react-native-svg").NumberArray | undefined;
    transform?: string | readonly (({
        perspective: import("react-native").AnimatableNumericValue;
    } & {
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        rotate: import("react-native").AnimatableStringValue;
    } & {
        perspective?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        rotateX: import("react-native").AnimatableStringValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        rotateY: import("react-native").AnimatableStringValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        rotateZ: import("react-native").AnimatableStringValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        scale: import("react-native").AnimatableNumericValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        scaleX: import("react-native").AnimatableNumericValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        scaleY: import("react-native").AnimatableNumericValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        translateX: import("react-native").AnimatableNumericValue | `${number}%`;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        translateY: import("react-native").AnimatableNumericValue | `${number}%`;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        skewX?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        skewX: import("react-native").AnimatableStringValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewY?: undefined;
        matrix?: undefined;
    }) | ({
        skewY: import("react-native").AnimatableStringValue;
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        matrix?: undefined;
    }) | ({
        matrix: import("react-native").AnimatableNumericValue[];
    } & {
        perspective?: undefined;
        rotate?: undefined;
        rotateX?: undefined;
        rotateY?: undefined;
        rotateZ?: undefined;
        scale?: undefined;
        scaleX?: undefined;
        scaleY?: undefined;
        translateX?: undefined;
        translateY?: undefined;
        skewX?: undefined;
        skewY?: undefined;
    }))[] | import("react-native-svg").ColumnMajorTransformMatrix | undefined;
    disabled?: boolean | undefined;
    onPress?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
    onPressIn?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
    onPressOut?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
    onLongPress?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
    delayPressIn?: number | undefined;
    delayPressOut?: number | undefined;
    delayLongPress?: number | undefined;
    marker?: string | undefined;
    markerStart?: string | undefined;
    markerMid?: string | undefined;
    markerEnd?: string | undefined;
    mask?: string | undefined;
    font?: import("react-native-svg").FontObject | undefined;
    fontVariant?: import("react-native-svg").FontVariant | undefined;
    fontStretch?: import("react-native-svg").FontStretch | undefined;
    fontFamily?: string | undefined;
    textAnchor?: import("react-native-svg").TextAnchor | undefined;
    textDecoration?: import("react-native-svg").TextDecoration | undefined;
    letterSpacing?: import("react-native-svg").NumberProp | undefined;
    wordSpacing?: import("react-native-svg").NumberProp | undefined;
    kerning?: import("react-native-svg").NumberProp | undefined;
    fontFeatureSettings?: string | undefined;
    fontVariantLigatures?: import("react-native-svg").FontVariantLigatures | undefined;
    fontVariationSettings?: string | undefined;
    fill: ColorValue;
    size: number;
    gradient: import("react/jsx-runtime").JSX.Element | null;
};
//# sourceMappingURL=common.d.ts.map