import Component from '@glimmer/component';
import type { displayMapping } from '../utils/css-mappings/eui-file-picker';
export type EuiFilePickerDisplay = keyof typeof displayMapping;
/**
 * You can find more typing on the template
 */
type EuiFilePicker = {
    id?: string;
    name?: string;
    class?: string;
    /**
     * The content that appears in the dropzone if no file is attached
     */
    initialPromptText?: Component | string | null;
    /**
     * Use as a callback to access the HTML FileList API
     */
    onChange?: (files: FileList | null) => void;
    /**
     * Reduces the size to a typical (compressed) input
     */
    compressed?: boolean;
    /**
     * Size or type of display;
     * `default` for normal height, similar to other controls;
     * `large` for taller size
     */
    display?: EuiFilePickerDisplay;
    fullWidth?: boolean;
    isInvalid?: boolean;
    isLoading?: boolean;
    disabled?: boolean;
    multiple?: boolean;
    /**
     * Optionally pass a fn to get the instance of the component to access it programatically
     */
    ref?: (c: typeof EuiFilePickerComponent) => void;
};
export interface EuiFilePickerSignature {
    Element: HTMLInputElement;
    Args: EuiFilePicker;
    Blocks: {
        default: [];
    };
}
export default class EuiFilePickerComponent extends Component<EuiFilePickerSignature> {
    fileInput: HTMLInputElement | null;
    promptText: string | null | undefined;
    isHoveringDrop: boolean;
    initialPromptText: Component | string | null;
    compressed: boolean;
    display: string;
    showDrop(): void;
    hideDrop(): void;
    handleChange(): void;
    removeFiles(e?: MouseEvent): void;
    didInsertInput(inputRef: HTMLInputElement): void;
    willDestroy(): void;
}
export {};
//# sourceMappingURL=eui-file-picker.d.ts.map