import { EventEmitter } from '../../stencil-public-runtime';
import { TMentionee } from '../../store/type';
import { GroupMember } from '../../api/type';
export declare class ChatInput {
    private disposeListener;
    private isTypingSent;
    private typingThrottleTimer?;
    value: string;
    images: string[];
    isLoading: boolean;
    isFileLoading: boolean;
    isImageLoading: boolean;
    isTranslated: boolean;
    isTranslateLoading: boolean;
    showQuickMessageModal: boolean;
    hasQuickMessageModalOpened: boolean;
    isQuickMessageLoading: boolean;
    showDialogBill: boolean;
    isDialogBillLoading: boolean;
    showDialogSticker: boolean;
    isExpanded: boolean;
    isFocused: boolean;
    groupMembers: GroupMember[];
    mentionees: TMentionee[];
    showMentionList: boolean;
    mentionSearchText: string;
    mentionStartIndex: number;
    selectedMentionIndex: number;
    send: EventEmitter<string>;
    private inputEl?;
    private overlayEl?;
    private mentionPopperEl?;
    private popperCleanup?;
    onFocusRequested(): void;
    componentDidLoad(): void;
    componentDidUpdate(): void;
    handleShowMentionListChange(newValue: boolean): void;
    private handleOutsideClick;
    componentWillLoad(): Promise<void>;
    handleInput: (e: Event) => void;
    private checkMention;
    private selectMention;
    private filteredMembers;
    private getValidMentionees;
    private renderHighlightedText;
    private handleScroll;
    private handleFocus;
    private handleBlur;
    private handleClick;
    handlePaste: (event: ClipboardEvent) => void;
    disconnectedCallback(): void;
    /**
     * Throttled typing emit: sends at most 1 `typing` event every 3 seconds
     * while the admin continues to type.
     */
    private handleThrottledTyping;
    /**
     * Immediately emit stop_typing and reset throttle state.
     */
    private handleStopTyping;
    private adjustHeight;
    private canShowTranslateButton;
    private renderTranslateButton;
    private getMessageLimit;
    private isOverLimit;
    private getAllGroupMembers;
    render(): any;
}
