import React from 'react'; import { StyleProp, ViewStyle, TextStyle, PressableProps, PressableStateCallbackType, DimensionValue } from 'react-native'; export type Ux4gButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost'; export type Ux4gButtonSize = 'small' | 'medium' | 'large'; export type Ux4gIconProp = React.ReactNode | ((props: { color: string; size: number; }) => React.ReactNode); export interface Ux4gButtonProps extends Omit { /** Text label inside the button */ text?: string; /** Custom child content overriding or supplementing `text` */ children?: React.ReactNode; /** Visual button style variant. Defaults to `'primary'`. */ variant?: Ux4gButtonVariant; /** Button sizing preset. Defaults to `'medium'`. */ size?: Ux4gButtonSize; /** Whether button is interactive and enabled. Defaults to `true`. */ enabled?: boolean; /** Whether button displays an ActivityIndicator and prevents press. Defaults to `false`. */ isLoading?: boolean; /** Direct override for button background color */ backgroundColor?: string; /** Direct override for button foreground text/icon color */ contentColor?: string; /** Direct override for background color when disabled */ disabledBackgroundColor?: string; /** Direct override for foreground content color when disabled */ disabledContentColor?: string; /** Direct override for border color */ borderColor?: string; /** Direct override for border width */ borderWidth?: number; /** Direct override for corner radius */ borderRadius?: number; /** Explicit horizontal/vertical padding override */ paddingHorizontal?: number; paddingVertical?: number; /** Leading icon rendered before text */ leadingIcon?: Ux4gIconProp; /** Trailing icon rendered after text */ trailingIcon?: Ux4gIconProp; /** Explicit icon size across leading/trailing icons */ iconSize?: number; /** Explicit width dimension */ width?: DimensionValue; /** Explicit height dimension */ height?: number; /** Elevation shadow for Android / shadow style for iOS */ elevation?: number; /** Style override for main button container */ style?: StyleProp | ((state: PressableStateCallbackType) => StyleProp); /** Style override for inner horizontal flex row (`leadingIcon` + `text` + `trailingIcon`) */ contentContainerStyle?: StyleProp; /** Style override for typography of the button `text` */ textStyle?: StyleProp; } export declare const Ux4gButton: React.FC; //# sourceMappingURL=Button.d.ts.map