/**
 * @license
 * Copyright Endlessjs. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { ElComponentStatus } from '../component-status';
/**
 * Chat form component.
 *
 * Show a message form with a send message button.
 *
 * ```ts
 * <el-chat-form showButton="true" buttonIcon="el-send">
 * </el-chat-form>
 * ```
 *
 * When `[dropFiles]="true"` handles files drag&drop with a file preview.
 *
 * Drag & drop available for files and images:
 * @stacked-example(Drag & Drop Chat, chat/chat-drop.component)
 *
 * New message could be tracked outside by using `(send)` output.
 *
 * ```ts
 * <el-chat-form (send)="onNewMessage($event)">
 * </el-chat-form>
 *
 * // ...
 *
 * onNewMessage({ message: string, files: any[] }) {
 *   this.service.sendToServer(message, files);
 * }
 * ```
 */
export declare class ElChatFormComponent {
    protected cd: ChangeDetectorRef;
    protected domSanitizer: DomSanitizer;
    status: ElComponentStatus | '';
    inputFocus: boolean;
    inputHover: boolean;
    droppedFiles: any[];
    imgDropTypes: string[];
    /**
     * Predefined message text
     * @type {string}
     */
    message: string;
    /**
     * Send button title
     * @type {string}
     */
    buttonTitle: string;
    /**
     * Send button icon, shown if `buttonTitle` is empty
     * @type {string}
     */
    buttonIcon: string;
    /**
     * Show send button
     * @type {boolean}
     */
    showButton: boolean;
    /**
     * Show send button
     * @type {boolean}
     */
    dropFiles: boolean;
    /**
     *
     * @type {EventEmitter<{ message: string, files: File[] }>}
     */
    send: EventEmitter<{
        message: string;
        files: File[];
    }>;
    fileOver: boolean;
    constructor(cd: ChangeDetectorRef, domSanitizer: DomSanitizer);
    onDrop(event: any): void;
    removeFile(file: any): void;
    onDragOver(): void;
    onDragLeave(): void;
    sendMessage(): void;
    setStatus(status: ElComponentStatus): void;
    getInputStatus(): ElComponentStatus | '';
}
