import * as React from 'react'; import { View, ViewStyle, StyleProp, Animated } from 'react-native'; import Surface from './Surface'; import Button from './Button'; import { IconSource } from './Icon'; import type { $RemoveChildren } from '../types'; declare type Props = $RemoveChildren & { /** * Whether banner is currently visible. */ visible: boolean; /** * Content that will be displayed inside banner. */ children: string; /** * Icon to display for the `Banner`. Can be an image. */ icon?: IconSource; /** * Action items to shown in the banner. * An action item should contain the following properties: * * - `label`: label of the action button (required) * - `onPress`: callback that is called when button is pressed (required) * * To customize button you can pass other props that button component takes. */ actions: Array<{ label: string; } & Omit, 'children'>>; /** * Style of banner's inner content. * Use this prop to apply custom width for wide layouts. */ contentStyle?: StyleProp; style?: StyleProp; ref?: React.RefObject; /** * @optional */ theme: ReactNativePaper.Theme; /** * @optional * Optional callback that will be called after the opening animation finished running normally */ onShowAnimationFinished?: Animated.EndCallback; /** * @optional * Optional callback that will be called after the closing animation finished running normally */ onHideAnimationFinished?: Animated.EndCallback; }; declare const _default: React.ComponentType & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }> & import("@callstack/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }> & (({ style, theme, ...rest }: import("react-native").ViewProps & React.RefAttributes & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }) => JSX.Element), {}>> & { /** * Whether banner is currently visible. */ visible: boolean; /** * Content that will be displayed inside banner. */ children: string; /** * Icon to display for the `Banner`. Can be an image. */ icon?: IconSource | undefined; /** * Action items to shown in the banner. * An action item should contain the following properties: * * - `label`: label of the action button (required) * - `onPress`: callback that is called when button is pressed (required) * * To customize button you can pass other props that button component takes. */ actions: ({ label: string; } & Omit<((Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle"> | Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { children?: React.ReactNode; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle">) & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }) | React.PropsWithChildren<(Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle"> | Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { children?: React.ReactNode; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle">) & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }>, "children">)[]; /** * Style of banner's inner content. * Use this prop to apply custom width for wide layouts. */ contentStyle?: StyleProp; style?: StyleProp; ref?: React.RefObject | undefined; /** * @optional */ theme: ReactNativePaper.Theme; /** * @optional * Optional callback that will be called after the opening animation finished running normally */ onShowAnimationFinished?: Animated.EndCallback | undefined; /** * @optional * Optional callback that will be called after the closing animation finished running normally */ onHideAnimationFinished?: Animated.EndCallback | undefined; }, "style" | "children" | "pointerEvents" | "onLayout" | "testID" | "nativeID" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "icon" | "visible" | "ref" | "key" | "hitSlop" | "removeClippedSubviews" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "contentStyle" | "actions" | "onShowAnimationFinished" | "onHideAnimationFinished"> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }> & import("@callstack/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }> & import("@callstack/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }> & (({ style, theme, ...rest }: import("react-native").ViewProps & React.RefAttributes & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }) => JSX.Element), {}>> & { /** * Whether banner is currently visible. */ visible: boolean; /** * Content that will be displayed inside banner. */ children: string; /** * Icon to display for the `Banner`. Can be an image. */ icon?: IconSource | undefined; /** * Action items to shown in the banner. * An action item should contain the following properties: * * - `label`: label of the action button (required) * - `onPress`: callback that is called when button is pressed (required) * * To customize button you can pass other props that button component takes. */ actions: ({ label: string; } & Omit<((Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle"> | Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { children?: React.ReactNode; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle">) & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }) | React.PropsWithChildren<(Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle"> | Pick & { children: React.ReactNode; style?: false | import("react-native").RegisteredStyle | Animated.Value | Animated.AnimatedInterpolation | Animated.WithAnimatedObject | Animated.WithAnimatedArray | import("react-native").RecursiveArray> | readonly (ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle)[]> | null | undefined; theme: ReactNativePaper.Theme; }, keyof import("react-native").ViewProps | keyof React.RefAttributes> & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; } & { children?: React.ReactNode; } & { mode?: "text" | "outlined" | "contained" | undefined; dark?: boolean | undefined; compact?: boolean | undefined; color?: string | undefined; loading?: boolean | undefined; icon?: IconSource | undefined; disabled?: boolean | undefined; children: React.ReactNode; uppercase?: boolean | undefined; accessibilityLabel?: string | undefined; accessibilityHint?: string | undefined; onPress?: (() => void) | undefined; onLongPress?: (() => void) | undefined; contentStyle?: StyleProp; style?: StyleProp; labelStyle?: StyleProp; theme: ReactNativePaper.Theme; testID?: string | undefined; }, "color" | "onPress" | "onLongPress" | "icon" | keyof import("react-native").ViewProps | "dark" | keyof React.RefAttributes | "mode" | "uppercase" | "labelStyle" | "disabled" | "compact" | "loading" | "contentStyle">) & { theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }>, "children">)[]; /** * Style of banner's inner content. * Use this prop to apply custom width for wide layouts. */ contentStyle?: StyleProp; style?: StyleProp; ref?: React.RefObject | undefined; /** * @optional */ theme: ReactNativePaper.Theme; /** * @optional * Optional callback that will be called after the opening animation finished running normally */ onShowAnimationFinished?: Animated.EndCallback | undefined; /** * @optional * Optional callback that will be called after the closing animation finished running normally */ onHideAnimationFinished?: Animated.EndCallback | undefined; }> & (({ visible, icon, children, actions, contentStyle, style, theme, onShowAnimationFinished, onHideAnimationFinished, ...rest }: Props) => JSX.Element), {}>; export default _default;