import { OnInit, EventEmitter, QueryList, TemplateRef, AfterViewInit } from '@angular/core';
import { EuiTemplateDirective } from '@eui/components/directives';
import { EuiUploadedFileInterface } from '../models/uploaded-file.model';
import * as i0 from "@angular/core";
/**
 * @description
 * Internal class used by `eui-file-upload` to display the files to be uploaded.
 */
export declare class EuiFilePreviewComponent implements OnInit, AfterViewInit {
    /**
     * The file to use. Will be a `Blob` for a file to be uploaded, `EuiUploadedFileInterface` for an initial file.
     */
    file: Blob | EuiUploadedFileInterface | any;
    /**
     * Template to use in the list of files.
     */
    uploadedFileTemplate: TemplateRef<{
        $implicit: {
            file: EuiUploadedFileInterface;
            index: number;
            isFileObject: boolean;
        };
    }>;
    /**
     * Index of the file in the list.
     */
    index: number;
    /**
     * Object matching extension and icon.
     */
    previewAsIconConfig: {
        avi: string;
        html: string;
        htm: string;
        js: string;
        json: string;
        mp3: string;
        mp4: string;
        pdf: string;
        png: string;
        svg: string;
        txt: string;
        xml: string;
        jpeg: string;
        jpg: string;
        zip: string;
        doc: string;
        docx: string;
        xls: string;
        xlsx: string;
        ppt: string;
        csv: string;
        rtf: string;
    };
    /**
     * Event emitted when the remove button is clicked.
     */
    removeFromList: EventEmitter<number>;
    url: string;
    icon: string;
    fileExtension: string;
    previewData: {
        image: boolean;
        display: string;
    };
    isLoading: boolean;
    typeFromFileExtension: string;
    /**
     * Event emitted when a chosen file to upload is clicked.
     */
    itemClick: EventEmitter<any>;
    /**
     * Whether a preview, image or icon, is displayed for a file to upload.
     *
     * @default true
     */
    hasPreview: boolean;
    /**
     * Whether the filename is displayed.
     *
     * @default true
     */
    isFilenameDisplayed: boolean;
    /**
     * Whether the filesize is displayed.
     *
     * @default true
     */
    isFilesizeDisplayed: boolean;
    /**
     * Whether the file type is displayed.
     *
     * @default true
     */
    isFiletypeDisplayed: boolean;
    /**
     * Whether a preview is displayed as image.
     *
     * @default true
     */
    hasPreviewAsImage: boolean;
    /**
     * Whether a preview is displayed as a file format icon.
     *
     * @default false
     */
    hasPreviewAsIcon: boolean;
    /**
     * Whether items can be clicked. `itemClick` event is emitted.
     *
     * @default false
     */
    isItemsClickable: boolean;
    /**
     * Whether the file is `File` or has been provided by the user as initial value.
     *
     * @default false
     */
    isFileObject: boolean;
    templates: QueryList<EuiTemplateDirective>;
    private cd;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /**
     * Remove from the list handler.
     */
    onRemoveFromList(): void;
    /**
     * Click item handler.
     * @param e The item clicked.
     */
    onItemClick(e: Event): void;
    /**
     * Method returning a file extension.
     *
     * @param fileName Filename of the file
     * @returns the extension as a string
     */
    private getFileExtension;
    /**
     * Method that returns the preview for a file.
     *
     * @param fileExtension Extension of the file
     * @param imgUrl URL of the file
     * @returns The image URL of valid image otherwise an icon of the extension
     */
    private getPreviewForMime;
    /**
     * Method that return the icon for a MIME type.
     *
     * @param fileExtension Extension of the file
     * @returns An icon string
     */
    private getIconForMime;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiFilePreviewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiFilePreviewComponent, "eui-file-preview", never, { "file": { "alias": "file"; "required": false; }; "uploadedFileTemplate": { "alias": "uploadedFileTemplate"; "required": false; }; "index": { "alias": "index"; "required": false; }; "previewAsIconConfig": { "alias": "previewAsIconConfig"; "required": false; }; "hasPreview": { "alias": "hasPreview"; "required": false; }; "isFilenameDisplayed": { "alias": "isFilenameDisplayed"; "required": false; }; "isFilesizeDisplayed": { "alias": "isFilesizeDisplayed"; "required": false; }; "isFiletypeDisplayed": { "alias": "isFiletypeDisplayed"; "required": false; }; "hasPreviewAsImage": { "alias": "hasPreviewAsImage"; "required": false; }; "hasPreviewAsIcon": { "alias": "hasPreviewAsIcon"; "required": false; }; "isItemsClickable": { "alias": "isItemsClickable"; "required": false; }; "isFileObject": { "alias": "isFileObject"; "required": false; }; }, { "removeFromList": "removeFromList"; "itemClick": "itemClick"; }, ["templates"], never, true, never>;
    static ngAcceptInputType_hasPreview: unknown;
    static ngAcceptInputType_isFilenameDisplayed: unknown;
    static ngAcceptInputType_isFilesizeDisplayed: unknown;
    static ngAcceptInputType_isFiletypeDisplayed: unknown;
    static ngAcceptInputType_hasPreviewAsImage: unknown;
    static ngAcceptInputType_hasPreviewAsIcon: unknown;
    static ngAcceptInputType_isItemsClickable: unknown;
    static ngAcceptInputType_isFileObject: unknown;
}
//# sourceMappingURL=file-preview.component.d.ts.map