import type { ColorSchemeName, ColorValue, OpaqueColorValue } from 'react-native'; import { aliasTokensColorMap } from '../vendor/tapestry/alias_tokens_color_map'; export interface ChatTheme extends DefaultTheme { colors: DefaultTheme['colors'] & (typeof aliasTokensColorMap.light | typeof aliasTokensColorMap.dark); } /** ============================================= NOTE: The specific values for `colors` and the `productBadge` are temporary examples that can be replaced once we start building out UI. This line's comment can be removed at that time too. The default theme is intended to support two types of customizations: 1. Specific color properties for a chat component (eg. `primaryButtonBackgroundColor`) 2. Any styles for a specific component. (Use only one level of nesting.) ``` primaryButton: { borderRadius: number container: ViewStyle text: TextStyle } ``` ============================================= */ export interface DefaultTheme { colors: ChatColors; button: { borderRadius: number; }; chip: { hslLightnessChipSelected: number; }; showBadgeProductLogo: boolean; } export declare const defaultTheme: (colorScheme: ColorSchemeName | null) => ChatTheme; export type TemporaryDefaultColorsType = Partial; interface ChatColors { name: string; buttonStart: string | undefined; buttonEnd: string | undefined; interaction: string; androidModalHeaderButtonTextColor: ColorValue | string | undefined; iOSModalHeaderButtonTextColor: OpaqueColorValue | string | undefined; androidSwitchThumbColor: string | undefined; conversationActionsBackground: string; testColor: string; statusSuccessIcon: string; statusSuccessText: string; statusSuccessBorder: string; statusSuccessFill: string; statusInfoIcon: string; statusInfoText: string; statusInfoBorder: string; statusInfoFill: string; statusWarningIcon: string; statusWarningText: string; statusWarningBorder: string; statusWarningFill: string; statusErrorIcon: string; statusErrorText: string; statusErrorBorder: string; statusErrorFill: string; statusSuccessComposedIcon: string; statusSuccessComposedText: string; statusSuccessComposedBackground: string; statusInfoComposedIcon: string; statusInfoComposedText: string; statusInfoComposedBackground: string; statusWarningComposedIcon: string; statusWarningComposedText: string; statusWarningComposedBackground: string; statusErrorComposedIcon: string; statusErrorComposedText: string; statusErrorComposedBackground: string; statusNeutralComposedIcon: string; statusNeutralComposedText: string; statusNeutralComposedBackground: string; borderColorChip: string; fillColorChip: string; textColorChip: string; /** * Selected-chip colors (border/fill/text). Never assign a static default * directly — these stay optional so they always fall back to * `colors.interaction` via `??` at the read site. Every current consumer * overrides `interaction` at runtime, and a seeded default here could win * over that override depending on merge order. */ borderColorChipSelected?: string; fillColorChipSelected?: string; textColorChipSelected?: string; } export {}; //# sourceMappingURL=theme.d.ts.map