import PropTypes from 'prop-types'; import React, { ReactNode } from 'react'; import { ImageStyle, TextStyle, ViewStyle } from 'react-native'; import { Omit, IMessage, User, LeftRightStyle } from './Models'; export interface AvatarProps { currentMessage?: TMessage; previousMessage?: TMessage; nextMessage?: TMessage; position: 'left' | 'right'; renderAvatarOnTop?: boolean; showAvatarForEveryMessage?: boolean; imageStyle?: LeftRightStyle; containerStyle?: LeftRightStyle; textStyle?: TextStyle; renderAvatar?(props: Omit, 'renderAvatar'>): ReactNode; onPressAvatar?(user: User): void; onLongPressAvatar?(user: User): void; } export default class Avatar extends React.Component> { static defaultProps: { renderAvatarOnTop: boolean; showAvatarForEveryMessage: boolean; position: string; currentMessage: { user: null; }; previousMessage: {}; nextMessage: {}; containerStyle: {}; imageStyle: {}; onPressAvatar: () => void; onLongPressAvatar: () => void; }; static propTypes: { renderAvatarOnTop: PropTypes.Requireable; showAvatarForEveryMessage: PropTypes.Requireable; position: PropTypes.Requireable; currentMessage: PropTypes.Requireable; previousMessage: PropTypes.Requireable; nextMessage: PropTypes.Requireable; onPressAvatar: PropTypes.Requireable<(...args: any[]) => any>; onLongPressAvatar: PropTypes.Requireable<(...args: any[]) => any>; renderAvatar: PropTypes.Requireable<(...args: any[]) => any>; containerStyle: PropTypes.Requireable; right: PropTypes.Requireable; }>>; imageStyle: PropTypes.Requireable; right: PropTypes.Requireable; }>>; }; renderAvatar(): {} | null | undefined; render(): JSX.Element | null; }