import { ReactNode } from 'react'; import { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeed } from '@trycourier/courier-ui-inbox'; import { CourierComponentThemeMode } from '@trycourier/courier-ui-core'; import { InboxMessage } from '@trycourier/courier-js'; export interface CourierInboxProps { /** Height of the inbox container. Defaults to "auto" and will resize itself based on it's children. */ height?: string; /** Theme object for light mode */ lightTheme?: CourierInboxTheme; /** Theme object for dark mode */ darkTheme?: CourierInboxTheme; /** Theme mode: "light", "dark", or "system". Defaults to "system" */ mode?: CourierComponentThemeMode; /** Type of feed to display in the inbox. Defaults to "inbox" */ feedType?: string; /** Array of feeds to display in the inbox. Each feed contains tabs with different filters. */ feeds?: CourierInboxFeed[]; /** Callback fired when a message is clicked. */ onMessageClick?: (props: CourierInboxListItemFactoryProps) => void; /** Callback fired when a message action (e.g., button) is clicked. */ onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void; /** Callback fired when a message is long-pressed (for mobile/gesture support). Only works on devices that support touch. */ onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void; /** Allows you to pass a custom component as the header. */ renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => ReactNode; /** Allows you to pass a custom component as the list item. */ renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => ReactNode; /** Allows you to pass a custom component as the empty state. */ renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => ReactNode; /** Allows you to pass a custom component as the loading state. */ renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => ReactNode; /** Allows you to pass a custom component as the error state. */ renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => ReactNode; /** Allows you to pass a custom component as the pagination list item. */ renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => ReactNode; /** * Render injected "dummy" inbox messages instead of fetching from the API. * No sign-in / network is required, and the live (shared) inbox is unaffected. */ previewMessages?: InboxMessage[]; /** Optional unread-count override for the preview (defaults to unread messages). */ previewUnreadCount?: number; } export declare const CourierInboxComponent: import('react').ForwardRefExoticComponent>;