// @flow import * as React from 'react' import type { AvatarProps } from './Avatar' import type { BubbleProps } from './Bubble' import type { SystemMessageProps } from './SystemMessage' import type { DayProps } from './Day' import type { IMessage, User, LeftRightStyle } from './types' import type { ViewStyleProp } from 'react-native/Libraries/StyleSheet/StyleSheet' export type MessageProps = $ReadOnly<{| key: React$Key, showUserAvatar?: boolean, position: 'left' | 'right', currentMessage?: TMessage, nextMessage?: TMessage, previousMessage?: TMessage, user: User, inverted?: boolean, containerStyle?: LeftRightStyle, renderBubble?: (BubbleProps) => React.Node, renderDay?: (DayProps) => React.Node, renderSystemMessage?: (SystemMessageProps) => React.Node, renderAvatar?: ((AvatarProps) => React.Node) | null, shouldUpdateMessage?: ( props: MessageProps, nextProps: MessageProps, ) => boolean, |}> export default class Message< TMessage: IMessage = IMessage, > extends React.Component> {}