import { IEventEmitter } from '@breadstone/mosaik-elements';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { IFilePickEventDetail } from './Events/IFilePickEvent';
import type { IFilePickerElementEvents } from './IFilePickerElementEvents';
import type { IFilePickerElementProps } from './IFilePickerElementProps';
declare const FilePickerElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * The `{@link FilePickerElement}` element.
 *
 * @public
 */
export declare class FilePickerElement extends FilePickerElement_base implements IFilePickerElementProps, IFilePickerElementEvents {
    private readonly _filePicked;
    private _multiple;
    private _accept;
    private _directory;
    /**
     * @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);
    /**
     * Called when <ACTION>.
     * Provides reference to `{@link IEventDetail}` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get filePicked(): IEventEmitter<IFilePickEventDetail>;
    /**
     * @public
     */
    pick(): void;
    /**
     * Emits the {@link filePicked} event.
     *
     * @protected
     */
    protected onFilePicked(args: IFilePickEventDetail): void;
    /**
     * @private
     * @templatefunction
     */
    onFileChange(e: Event): void;
    /**
     * @private
     * @templatefunction
     */
    onSlotChange(e: Event): void;
}
/**
 * @public
 */
export declare namespace FilePickerElement {
    type Props = IFilePickerElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-file-picker': FilePickerElement;
    }
}
export {};
//# sourceMappingURL=FilePickerElement.d.ts.map