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 };