import type React from 'react'; import type { StyleProp, ViewProps, ViewStyle } from 'react-native'; import type { SizeProp } from '../../tokens/size'; import type { ColorProp, SlotPropsConfig, SxProps } from '../../types/shared'; /** Duration presets or custom ms value. */ export type SnackbarDuration = 'short' | 'long' | number; /** A single item in the snackbar queue. */ export interface SnackbarItem { id: string; message: string; duration?: SnackbarDuration; action?: { label: string; onPress: () => void; }; } /** Slot overrides for Snackbar sub-components. */ export interface SnackbarSlots { [key: string]: React.ComponentType; Root: React.ComponentType; Message: React.ComponentType; Action: React.ComponentType; } /** * Props for the Snackbar display component. */ export interface SnackbarProps extends SlotPropsConfig { item: SnackbarItem; onDismiss: (id: string) => void; /** * MUI-idiomatic alias — controls whether the snackbar is visible. * When `open` is explicitly `false`, the snackbar is hidden. */ open?: boolean; size?: SizeProp; color?: ColorProp; sx?: SxProps; style?: StyleProp; testID?: string; } /** * Props for SnackbarHost — place once near the root (inside PortalHost). */ export interface SnackbarHostProps { children: React.ReactNode; } /** Context value exposed to useSnackbar() consumers. */ export interface SnackbarContextValue { show: (item: Omit) => void; dismiss: (id?: string) => void; } //# sourceMappingURL=types.d.ts.map