import { IEventEmitter } from '@breadstone/mosaik-elements';
import type { IFilesPickedEventDetail } from '../../../events';
import { CustomElement } from '../../Abstracts/CustomElement';
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;
/**
 * File Picker - A user interface component that allows users to select files from their device.
 *
 * @description
 * The FilePicker component provides a simple and accessible way for users to browse and select files,
 * either through a native file dialog or via drag-and-drop integration. It is commonly used in forms,
 * upload flows, and content management systems where files such as images, documents, or media need
 * to be added by the user.
 *
 * FilePicker ensures accessibility and consistency across browsers while offering customization options
 * for styling and behavior. Developers can listen to emitted events to handle picked files and integrate
 * them seamlessly into application logic.
 *
 * @name FilePicker
 * @element mosaik-file-picker
 * @category Input
 *
 * @slot - The default slot for custom trigger content (e.g., a button or icon).
 *
 * @csspart file - The file part.
 *
 * @cssprop {String} --file-picker-background-color - The picker background color CSS custom property.
 * @cssprop {String} --file-picker-border-color - The picker border color CSS custom property.
 * @cssprop {String} --file-picker-border-radius - The picker border radius CSS custom property.
 * @cssprop {String} --file-picker-border-style - The picker border style CSS custom property.
 * @cssprop {String} --file-picker-border-width - The picker border width CSS custom property.
 * @cssprop {String} --file-picker-font-family - The picker font family CSS custom property.
 * @cssprop {String} --file-picker-font-letter-spacing - The picker font letter spacing CSS custom property.
 * @cssprop {String} --file-picker-font-line-height - The picker font line height CSS custom property.
 * @cssprop {String} --file-picker-font-size - The picker font size CSS custom property.
 * @cssprop {String} --file-picker-font-text-decoration - The picker font text decoration CSS custom property.
 * @cssprop {String} --file-picker-font-text-transform - The picker font text transform CSS custom property.
 * @cssprop {String} --file-picker-font-weight - The picker font weight CSS custom property.
 * @cssprop {String} --file-picker-foreground-color - The picker foreground color CSS custom property.
 * @cssprop {String} --file-picker-gap - The picker gap CSS custom property.
 * @cssprop {String} --file-picker-padding-bottom - The picker padding bottom CSS custom property.
 * @cssprop {String} --file-picker-padding-left - The picker padding left CSS custom property.
 * @cssprop {String} --file-picker-padding-right - The picker padding right CSS custom property.
 * @cssprop {String} --file-picker-padding-top - The picker padding top CSS custom property.
 * @cssprop {String} --file-picker-shadow - The picker shadow CSS custom property.
 * @cssprop {String} --file-picker-shadow-blur - The picker shadow blur CSS custom property.
 * @cssprop {String} --file-picker-shadow-color - The picker shadow color CSS custom property.
 * @cssprop {String} --file-picker-shadow-offset-x - The picker shadow offset x CSS custom property.
 * @cssprop {String} --file-picker-shadow-offset-y - The picker shadow offset y CSS custom property.
 * @cssprop {String} --file-picker-shadow-spread - The picker shadow spread CSS custom property.
 * @cssprop {String} --file-picker-transition-duration - The picker transition duration CSS custom property.
 * @cssprop {String} --file-picker-transition-mode - The picker transition mode CSS custom property.
 * @cssprop {String} --file-picker-transition-property - The picker transition property CSS custom property.
 * @cssprop {String} --file-picker-translate - The picker translate CSS custom property.
 *
 * @fires filesPicked {FilesPickedEvent} - Fired when one or multiple files are selected by the user.
 *
 * @example
 * ```html
 * <mosaik-file-picker>
 *   <button>Select File</button>
 * </mosaik-file-picker>
 * ```
 *
 * @public
 */
export declare class FilePickerElement extends FilePickerElement_base implements IFilePickerElementProps {
    private readonly _filesPicked;
    private _fileElement;
    private _multiple;
    private _accept;
    private _directory;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `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 files are picked.
     * Provides reference to `IEventDetail` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get filesPicked(): IEventEmitter<IFilesPickedEventDetail>;
    /**
     * @public
     */
    pick(): void;
    /**
     * @private
     * @template
     */
    onFileChange(e: Event): void;
    /**
     * @private
     * @template
     */
    onSlotChange(e: Event): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * Emits the `filesPicked` event.
     *
     * @protected
     */
    protected onFilesPicked(args: IFilesPickedEventDetail): void;
}
/**
 * @public
 */
export declare namespace FilePickerElement {
    type Props = IFilePickerElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-file-picker': FilePickerElement;
    }
}
export {};
//# sourceMappingURL=FilePickerElement.d.ts.map