/* eslint-disable */
/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
import { FileUploaderConfig } from "./interfaces/file-uploader-config";
import { FileUploaderResult } from "./interfaces/file-uploader-result";
import { WebComponentError } from "./interfaces/web-component-error";
export { FileUploaderConfig } from "./interfaces/file-uploader-config";
export { FileUploaderResult } from "./interfaces/file-uploader-result";
export { WebComponentError } from "./interfaces/web-component-error";
export namespace Components {
    interface FileUploader {
        "config": FileUploaderConfig;
        "onRemovedSelected": () => Promise<void>;
        "selectFileHandler": () => Promise<void>;
    }
}
export interface FileUploaderCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLFileUploaderElement;
}
declare global {
    interface HTMLFileUploaderElementEventMap {
        "result": FileUploaderResult | null;
        "componentError": WebComponentError;
    }
    interface HTMLFileUploaderElement extends Components.FileUploader, HTMLStencilElement {
        addEventListener<K extends keyof HTMLFileUploaderElementEventMap>(type: K, listener: (this: HTMLFileUploaderElement, ev: FileUploaderCustomEvent<HTMLFileUploaderElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLFileUploaderElementEventMap>(type: K, listener: (this: HTMLFileUploaderElement, ev: FileUploaderCustomEvent<HTMLFileUploaderElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLFileUploaderElement: {
        prototype: HTMLFileUploaderElement;
        new (): HTMLFileUploaderElement;
    };
    interface HTMLElementTagNameMap {
        "file-uploader": HTMLFileUploaderElement;
    }
}
declare namespace LocalJSX {
    interface FileUploader {
        "config"?: FileUploaderConfig;
        /**
          * On error event emitter
         */
        "onComponentError"?: (event: FileUploaderCustomEvent<WebComponentError>) => void;
        /**
          * On file change event emitter
         */
        "onResult"?: (event: FileUploaderCustomEvent<FileUploaderResult | null>) => void;
    }
    interface IntrinsicElements {
        "file-uploader": FileUploader;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "file-uploader": LocalJSX.FileUploader & JSXBase.HTMLAttributes<HTMLFileUploaderElement>;
        }
    }
}
