import { IAttachmentChatToolElementProps } from './IAttachmentChatToolElementProps';
import { ChatToolBaseElement } from './Abstracts/ChatToolBaseElement';
import { IEventEmitter } from '@breadstone/mosaik-elements';
import { IChatAttachmentRejectEventDetail } from '../Events/IChatAttachmentRejectEvent';
declare const AttachmentChatToolElement_base: (abstract new (...args: Array<any>) => import("../../../../Behaviors/Themeable").IThemeableProps) & typeof ChatToolBaseElement & import("../../../../Behaviors/Themeable").IThemeableCtor;
/**
 * The `{@link AttachmentChatToolElement}` element.
 *
 * @fires filePicked - Called when a file is picked.
 * @fires chatAttachmentRejected - Called when an attachment is rejected.
 *
 * @public
 */
export declare class AttachmentChatToolElement extends AttachmentChatToolElement_base implements IAttachmentChatToolElementProps {
    private readonly _attachmentRejected;
    private _multiple;
    private _accept;
    private _directory;
    private _maxFiles;
    private _maxFileSize;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `multiple` property.
     *
     * @public
     * @attr
     */
    get multiple(): boolean;
    set multiple(value: boolean);
    /**
     * Gets or sets the `accept` property.
     *
     * @public
     */
    get accept(): Array<string>;
    set accept(value: Array<string>);
    /**
     * Gets or sets the `directory` property.
     *
     * @public
     * @attr
     */
    get directory(): boolean;
    set directory(value: boolean);
    /**
     * Gets or sets the `maxFiles` property.
     *
     * @public
     * @attr
     */
    get maxFiles(): number;
    set maxFiles(value: number);
    /**
     * Gets or sets the `maxFileSize` property.
     *
     * @public
     * @attr
     */
    get maxFileSize(): number;
    set maxFileSize(value: number);
    /**
     * Called when an attachment is rejected.
     * Provides reference to `{@link IChatAttachmentRejectEventDetail}` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get attachmentRejected(): IEventEmitter<IChatAttachmentRejectEventDetail>;
    /**
     * @public
     * @override
     */
    execute(args: FileList | Array<File>): boolean;
    /**
     * Emits the {@link attachmentRejected} event.
     *
     * @protected
     */
    protected onAttachmentRejected(args: IChatAttachmentRejectEventDetail): void;
    /**
     * @private
     */
    private validate;
}
/**
 * @public
 */
export declare namespace AttachmentChatToolElement {
    type Props = IAttachmentChatToolElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-attachment-chat-tool': AttachmentChatToolElement;
    }
}
export {};
//# sourceMappingURL=AttachmentChatToolElement.d.ts.map