import { SystemThemeMode, CourierFontTheme, CourierIconTheme, CourierButtonTheme, CourierIconButtonTheme } from '@trycourier/courier-ui-core'; export type CourierInboxFontTheme = CourierFontTheme; export type CourierInboxIconTheme = CourierIconTheme; export type CourierInboxButtonTheme = CourierButtonTheme; export type CourierInboxIconButtonTheme = CourierIconButtonTheme; export type CourierInboxUnreadDotIndicatorTheme = { backgroundColor?: string; borderRadius?: string; height?: string; width?: string; }; export type CourierInboxUnreadCountIndicatorTheme = { font?: CourierInboxFontTheme; backgroundColor?: string; borderRadius?: string; padding?: string; }; export type CourierInboxMenuButtonTheme = CourierInboxIconButtonTheme & { unreadDotIndicator?: CourierInboxUnreadDotIndicatorTheme; }; export type CourierInboxAnimationTheme = { transition?: string; initialTransform?: string; visibleTransform?: string; }; export type CourierInboxPopupTheme = { backgroundColor?: string; border?: string; borderRadius?: string; shadow?: string; animation?: CourierInboxAnimationTheme; list?: { font?: CourierInboxFontTheme; selectedIcon?: CourierInboxIconTheme; hoverBackgroundColor?: string; activeBackgroundColor?: string; divider?: string; }; }; export type CourierInboxSubtitleLinkTheme = { color?: string; textDecoration?: string; hoverColor?: string; }; /** * Styles for one message-action look. * * @public */ export type CourierInboxActionVariantTheme = { backgroundColor?: string; hoverBackgroundColor?: string; activeBackgroundColor?: string; border?: string; borderRadius?: string; shadow?: string; textDecoration?: string; padding?: string; font?: CourierInboxFontTheme; }; /** * Styles for a message's action buttons. * * The top level describes the default filled button. `outlined` and `link` layer over it and * apply only when the action asks for that look, so a template configuring an outlined or link * action renders as its author intended without giving up the rest of the theme. * * @public */ export type CourierInboxActionsTheme = CourierInboxActionVariantTheme & { /** Applies to `style: 'button'` — the filled button, and the default when absent. */ button?: CourierInboxActionVariantTheme; /** Applies to `style: 'secondary'` — the outlined button. */ secondary?: CourierInboxActionVariantTheme; /** Applies to `style: 'tertiary'` — the borderless button. */ tertiary?: CourierInboxActionVariantTheme; /** Applies to `style: 'link'` — inline text rather than a button. */ link?: CourierInboxActionVariantTheme; }; export type CourierInboxListItemTheme = { unreadIndicatorColor?: string; backgroundColor?: string; hoverBackgroundColor?: string; activeBackgroundColor?: string; transition?: string; title?: CourierInboxFontTheme; subtitle?: CourierInboxFontTheme; /** Styles for inline links inside the subtitle/body text */ subtitleLink?: CourierInboxSubtitleLinkTheme; time?: CourierInboxFontTheme; archiveIcon?: CourierInboxIconTheme; divider?: string; actions?: CourierInboxActionsTheme; menu?: { enabled?: boolean; backgroundColor?: string; border?: string; borderRadius?: string; shadow?: string; animation?: CourierInboxAnimationTheme; longPress?: { displayDuration?: number; vibrationDuration?: number; }; item?: { hoverBackgroundColor?: string; activeBackgroundColor?: string; borderRadius?: string; read?: CourierInboxIconTheme; unread?: CourierInboxIconTheme; archive?: CourierInboxIconTheme; unarchive?: CourierInboxIconTheme; }; }; }; export type CourierInboxSkeletonLoadingStateTheme = { animation?: { barColor?: string; barHeight?: string; barBorderRadius?: string; duration?: string; }; divider?: string; }; export type CourierInboxInfoStateTheme = { title?: { font?: CourierInboxFontTheme; text?: string; }; button?: CourierInboxButtonTheme; }; export type CourierMenuItemTheme = { icon?: CourierInboxIconTheme; text?: string; }; export type CourierActionMenuTheme = { button?: CourierInboxIconButtonTheme; markAllRead?: CourierMenuItemTheme; archiveAll?: CourierMenuItemTheme; archiveRead?: CourierMenuItemTheme; animation?: CourierInboxAnimationTheme; menu?: CourierInboxPopupTheme; }; export type CourierInboxTabsBorderRadius = string | { topLeft?: string; topRight?: string; bottomLeft?: string; bottomRight?: string; }; export type CourierInboxListScrollbarTheme = { trackBackgroundColor?: string; thumbColor?: string; thumbHoverColor?: string; width?: string; height?: string; borderRadius?: string; }; export type CourierInboxTabsTheme = { borderRadius?: CourierInboxTabsBorderRadius; transition?: string; default?: { backgroundColor?: string; hoverBackgroundColor?: string; activeBackgroundColor?: string; font?: CourierInboxFontTheme; indicatorColor?: string; indicatorHeight?: string; unreadIndicator?: CourierInboxUnreadCountIndicatorTheme; }; selected?: { backgroundColor?: string; hoverBackgroundColor?: string; activeBackgroundColor?: string; font?: CourierInboxFontTheme; indicatorColor?: string; indicatorHeight?: string; unreadIndicator?: CourierInboxUnreadCountIndicatorTheme; }; }; export type CourierInboxTheme = { popup?: { button?: CourierInboxMenuButtonTheme; window?: { backgroundColor?: string; borderRadius?: string; border?: string; shadow?: string; animation?: CourierInboxAnimationTheme; }; }; inbox?: { header?: { backgroundColor?: string; shadow?: string; border?: string; feeds?: { button?: { selectedFeedIconColor?: string; font?: CourierInboxFontTheme; changeFeedIcon?: CourierIconTheme; unreadCountIndicator?: CourierInboxUnreadCountIndicatorTheme; hoverBackgroundColor?: string; activeBackgroundColor?: string; transition?: string; }; menu?: CourierInboxPopupTheme; tabs?: CourierInboxTabsTheme; }; tabs?: CourierInboxTabsTheme; actions?: CourierActionMenuTheme; }; list?: { backgroundColor?: string; scrollbar?: CourierInboxListScrollbarTheme; item?: CourierInboxListItemTheme; }; loading?: CourierInboxSkeletonLoadingStateTheme; empty?: CourierInboxInfoStateTheme; error?: CourierInboxInfoStateTheme; }; }; export declare const defaultLightTheme: CourierInboxTheme; export declare const defaultDarkTheme: CourierInboxTheme; export declare const mergeTheme: (mode: SystemThemeMode, theme: CourierInboxTheme) => CourierInboxTheme;