import type { ReactNode } from 'react'; import type { GestureResponderEvent, PressableProps, StyleProp, ViewStyle } from 'react-native'; export type ProgressCompletionHandler = (callback?: () => void) => void; export type AwesomeButtonOnPress = (next?: ProgressCompletionHandler) => void; export type AwesomeButtonPressableProps = Omit; export type ButtonWidth = number | 'auto' | null; export interface AwesomeButtonProps { activityColor?: string; activeOpacity?: number; animatedPlaceholder?: boolean; backgroundActive?: string; backgroundColor?: string; backgroundDarker?: string; backgroundPlaceholder?: string; backgroundProgress?: string; backgroundShadow?: string; borderColor?: string; borderRadius?: number; borderBottomLeftRadius?: number; borderBottomRightRadius?: number; borderTopLeftRadius?: number; borderTopRightRadius?: number; debouncedPressTime?: number; borderLeftBottomRadius?: number; borderWidth?: number; progressLoadingTime?: number; extra?: ReactNode; disabled?: boolean; height?: number; hitSlop?: PressableProps['hitSlop']; paddingHorizontal?: number; paddingTop?: number; progress?: boolean; before?: ReactNode; dangerouslySetPressableProps?: AwesomeButtonPressableProps; after?: ReactNode; paddingBottom?: number; raiseLevel?: number; springRelease?: boolean; stretch?: boolean; style?: StyleProp; textFontFamily?: string; textColor?: string; textLineHeight?: number; textSize?: number; textTransition?: boolean; width?: ButtonWidth; children?: ReactNode; onPress?: AwesomeButtonOnPress; onLongPress?: PressableProps['onLongPress']; onPressIn?: (event: GestureResponderEvent) => void; onPressOut?: (event: GestureResponderEvent) => void; onPressedIn?: () => void; onPressedOut?: () => void; onProgressStart?: () => void; onProgressEnd?: () => void; } export type ThemeName = 'basic' | 'bojack' | 'cartman' | 'mysterion' | 'c137' | 'rick' | 'summer' | 'bruce'; export type CoreButtonVariant = 'primary' | 'secondary' | 'anchor' | 'danger' | 'disabled' | 'flat'; export type SocialButtonVariant = 'twitter' | 'messenger' | 'facebook' | 'github' | 'linkedin' | 'whatsapp' | 'reddit' | 'pinterest' | 'youtube'; export type ButtonVariant = CoreButtonVariant | SocialButtonVariant; export type ButtonSize = 'icon' | 'small' | 'medium' | 'large'; export type ThemeButtonStyle = Pick; export type ThemeSizeStyle = { width: number; height: number; textSize?: number; paddingHorizontal?: number; }; export type ThemeButtonDefinitions = Record; export type ThemeSizeDefinitions = Record; export type ThemeDefinition = { title: string; background: string; color: string; buttons: ThemeButtonDefinitions; size: ThemeSizeDefinitions; }; export type RegisteredThemeDefinition = ThemeDefinition & { name: ThemeName; next: boolean; prev: boolean; }; export interface ThemedButtonProps extends AwesomeButtonProps { config?: ThemeDefinition; flat?: boolean; index?: number | null; name?: ThemeName | null; size?: ButtonSize; transparent?: boolean; type?: ButtonVariant; } //# sourceMappingURL=types.d.ts.map