///
import * as React from "react";
import * as ChannelState from "../../state/ChannelState";
import "./MessageList.less";
export interface Props {
isLoadingMessages: boolean;
messages: Array;
members: ChannelState.MembersType;
typers: Array;
lastConsumedMessageIndex: number;
onLoadMoreMessages: Function;
onConsumeMessageAtIndex: Function;
isAppActive: boolean;
}
export default class MessageList extends React.Component {
static readonly displayName: string;
private messageList;
private loadedMessagesInUpdate;
private keepScrolledToBottom;
private keepTopScrollPosition;
private lastScrollHeight;
private lastScrollTop;
private isTouchActive;
private isScrollActive;
private needsForceRenderAfterScroll;
private afterScrollTimer;
constructor(props: Props);
componentWillUpdate(nextProps: Props, nextState: undefined): void;
shouldComponentUpdate(nextProps: Props, nextState: undefined, nextContext: any): boolean;
componentDidUpdate(): void;
invalidateScrollPosition(): void;
scrollToBottom(): void;
private consumeLastMessageIfApplicable();
private captureBottomScrollState();
private captureScrollState();
private loadMoreMessages();
private onAfterScrollTimer;
private scheduleAfterScrollTimer();
private onScroll;
private setMessageListRef;
private findMyLastMessageIndex();
private onTouchStart;
private onTouchEnd;
render(): JSX.Element;
private renderTypingIndicator();
private isScrolledIntoView(el);
private injectDateSeparatorElements(messageElements);
}