///
import * as React from 'react';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { IBotConnection, User, DirectLineOptions, CardActionTypes } from 'botframework-directlinejs';
import { SpeechOptions } from './SpeechOptions';
import { ActivityOrID, FormatOptions } from './Types';
export interface ChatProps {
user: User;
bot: User;
botConnection?: IBotConnection;
directLine?: DirectLineOptions;
speechOptions?: SpeechOptions;
locale?: string;
selectedActivity?: BehaviorSubject;
sendTyping?: boolean;
formatOptions?: FormatOptions;
resize?: 'none' | 'window' | 'detect';
OnQuit?: VoidFunction;
IconRight: any;
}
export declare class Chat extends React.Component {
private store;
private botConnection;
private activitySubscription;
private connectionStatusSubscription;
private selectedActivitySubscription;
private shellRef;
private chatviewPanel;
private resizeListener;
private _handleKeyDownCapture;
private _saveShellRef;
private onQuit;
constructor(props: ChatProps);
private handleIncomingActivity(activity);
private setSize();
private handleKeyDownCapture(evt);
private saveShellRef(shellWrapper);
componentDidMount(): void;
componentWillUnmount(): void;
render(): JSX.Element;
}
export interface IDoCardAction {
(type: CardActionTypes, value: string | object): void;
}
export declare const doCardAction: (botConnection: IBotConnection, from: User, locale: string, sendMessage: (value: string, user: User, locale: string) => void) => IDoCardAction;
export declare const sendPostBack: (botConnection: IBotConnection, text: string, value: object, from: User, locale: string) => void;
export declare const renderIfNonempty: (value: any, renderer: (value: any) => JSX.Element) => JSX.Element;
export declare const classList: (...args: (string | boolean)[]) => string;