import React from 'react'; import { StyleProp, TextProps, TextStyle, TouchableOpacityProps, ViewProps, ViewStyle } from 'react-native'; export declare type ReactChildren = React.ReactNode; export declare type ToastType = 'success' | 'error' | 'info' | (string & {}); export declare type ToastPosition = 'top' | 'bottom'; export declare type ToastOptions = { /** * Toast type. * Default value: `success` */ type?: ToastType; /** * Style for the header text in the Toast (text1). */ text1Style?: StyleProp<TextStyle>; /** * Style for the inner message text in the Toast (text2). */ text2Style?: StyleProp<TextStyle>; /** * Toast position. * Default value: `top` */ position?: ToastPosition; /** * When `true`, the visible Toast automatically hides after a certain number of milliseconds, * specified by the `visibilityTime` prop. * Default value: `true` */ autoHide?: boolean; /** * Number of milliseconds after which Toast automatically hides. * Has effect only in conjunction with `autoHide` prop set to `true`. * Default value: `4000` */ visibilityTime?: number; /** * When `true`, the Toast can be dismissed by a swipe gesture, specified by the `swipeable` prop. * Default value: `true` */ swipeable?: boolean; /** * Offset from the top of the screen (in px). * Has effect only when `position` is `top` * Default value: `40` */ topOffset?: number; /** * Offset from the bottom of the screen (in px) * Has effect only when `position` is `bottom` * Default value: `40` */ bottomOffset?: number; /** * Offset from the Keyboard (in px) * Has effect only when `position` is `bottom` and Keyboard is visible * Default value: `10` */ keyboardOffset?: number; /** * When `true` offset calculation use KeyboardHeight in position calculation. * If you put <Toast /> inside a keyboard aware component and position is 'bottom', you should set this to `false`. * Default value: true */ avoidKeyboard?: boolean; /** * Called when Toast is shown */ onShow?: () => void; /** * Called when Toast hides */ onHide?: () => void; /** * Called on Toast press */ onPress?: () => void; /** * Any custom props passed to the specified Toast type. * Has effect only when there is a custom Toast type (configured via the `config` prop * on the Toast instance) that uses the `props` parameter */ props?: any; }; export declare type ToastData = { text1?: string; text2?: string; }; export declare type ToastShowParams = ToastData & ToastOptions; export declare type ToastHideParams = void; export declare type BaseToastProps = { text1?: string; text2?: string; onPress?: () => void; activeOpacity?: number; style?: StyleProp<ViewStyle>; touchableContainerProps?: TouchableOpacityProps; contentContainerStyle?: StyleProp<ViewStyle>; contentContainerProps?: ViewProps; text1Style?: StyleProp<TextStyle>; text1NumberOfLines?: number; text1Props?: TextProps; text2Style?: StyleProp<TextStyle>; text2NumberOfLines?: number; text2Props?: TextProps; renderLeadingIcon?: () => React.ReactNode; renderTrailingIcon?: () => React.ReactNode; }; export declare type ToastConfigParams<Props> = { position: ToastPosition; type: ToastType; isVisible: boolean; text1?: string; text2?: string; text1Style?: StyleProp<TextStyle>; text2Style?: StyleProp<TextStyle>; show: (params: ToastShowParams) => void; hide: (params: ToastHideParams) => void; onPress: () => void; props: Props; }; export declare type ToastConfig = { [key: string]: (params: ToastConfigParams<any>) => React.ReactNode; }; export declare type ToastRef = { show: (params: ToastShowParams) => void; hide: (params: ToastHideParams) => void; }; /** * `props` that can be set on the Toast instance. * They act as defaults for all Toasts that are shown. */ export declare type ToastProps = { /** * Layout configuration for custom Toast types */ config?: ToastConfig; /** * Toast type. * Default value: `success` */ type?: ToastType; /** * Toast position. * Default value: `top` */ position?: ToastPosition; /** * Number of milliseconds after which Toast automatically hides. * Has effect only in conjunction with `autoHide` prop set to `true`. * Default value: `4000` */ visibilityTime?: number; /** * When `true`, the Toast can be dismissed by a swipe gesture, specified by the `swipeable` prop. * Default value: `true` */ swipeable?: boolean; /** * When `true`, the visible Toast automatically hides after a certain number of milliseconds, * specified by the `visibilityTime` prop. * Default value: `true` */ autoHide?: boolean; /** * Offset from the top of the screen (in px). * Has effect only when `position` is `top` * Default value: `40` */ topOffset?: number; /** * Offset from the bottom of the screen (in px) * Has effect only when `position` is `bottom` * Default value: `40` */ bottomOffset?: number; /** * Offset from the Keyboard (in px) * Has effect only when `position` is `bottom` and Keyboard is visible (iOS only) * Default value: `10` */ keyboardOffset?: number; /** * When `true` offset calculation use KeyboardHeight in position calculation. * If you put <Toast /> inside a keyboard aware component and position is 'bottom', you should set this to `false`. * Default value: true */ avoidKeyboard?: boolean; /** * Called when any Toast is shown */ onShow?: () => void; /** * Called when any Toast hides */ onHide?: () => void; /** * Called on any Toast press */ onPress?: () => void; };