import * as lit_html from 'lit-html'; import * as lit from 'lit'; import { LitElement } from 'lit'; import KemetUploadFile from './upload-file.js'; interface InterfaceUploadChangeDetails { event: Event | DragEvent; files: FileList; fileElement: KemetUploadFile; } /** * @since 1.3.0 * @status stable * * @tagname kemet-upload * @summary An interface for uploading files. * * @prop {string} slug - A unique identifier for the component * @prop {string} accept - Determines what file types are accepted * @prop {boolean} multiple - Allows for multiple files * @prop {boolean} over - Automatically is true when a file is being dragged over the upload area * @prop {string} heading - Descriptive text for the upload area * @prop {boolean} mobile - Displays the component in a mobile context * @prop {string} breakpoint - Controls the point at which the component is considered mobile * @prop {boolean} noDragDrop - Is true if drag and drop support is not detected * @prop {number} maxSize - The maximum file size for uploads * @prop {string} buttonLabel - The browse files button text * * @event kemet-change - Fires when files have been added * * @csspart upload - The area where files are dropped. * @csspart heading - The description in the upload area. * @csspart button - The button in the upload area. * @csspart files - The area where uploaded files are listed. * * @cssproperty --kemet-upload-color - The default text color. * @cssproperty --kemet-upload-height - The height. * @cssproperty --kemet-upload-border - The border. * @cssproperty --kemet-upload-background-color - The background color. * */ declare class KemetUpload extends LitElement { static styles: lit.CSSResult[]; slug: string; accept: string; multiple: boolean; over: boolean; heading: string; mobile: boolean; breakpoint: string; noDragDrop: boolean; maxSize: number; buttonLabel: string; fileInputElement: HTMLInputElement; upload: HTMLElement; firstUpdated(): void; render(): lit_html.TemplateResult<1>; handleChange(event: Event): void; handleDrop(event: DragEvent): void; isMobile(): void; hasDragDrop(): void; } declare global { interface HTMLElementTagNameMap { 'kemet-upload': KemetUpload; } } export { type InterfaceUploadChangeDetails, KemetUpload as default };