import { WaitingChange } from "@sankhyalabs/core";
import { EventEmitter } from "../../stencil-public-runtime";
import RemoteFile from "./RemoteFile";
export interface EzFile {
  name: string;
  size: number;
  lastModifiedDate?: Date;
  downloadURL?: string;
  properties?: Array<any>;
}
export declare class EzUpload {
  private _host;
  private _dropZone;
  private _fileInput;
  private _filePointers;
  private _requestHeaders;
  private _updatingValue;
  private i18n;
  /**
   * Texto a ser apresentado como título do campo.
   */
  label: string;
  /**
   * Define o subtítulo utilizado no campo de upload
   */
  subtitle: string;
  /**
  * Se false o usuário não pode interagir com o campo.
  */
  enabled: boolean;
  /**
  *  Define o tamanho máximo (em bytes) de cada arquivo que pode ser transferido
  */
  maxFileSize: number;
  /**
  *  Define um limite para a quantidade de arquivos
  */
  maxFiles: number;
  /**
  *  Headers para a requisição Http
  */
  requestHeaders: any;
  /**
   *  Define a URL de upload
   */
  urlUpload: string;
  /**
   *  Define a URL de deleção
   */
  urlDelete: string;
  /**
   * Define o valor do campo.
   */
  value: Array<EzFile>;
  /**
   * Emitido quando acontece a alteração de valor do campo.
   */
  ezChange: EventEmitter<Array<EzFile>>;
  /**
   * Emitido ao iniciar a alteração (remover ou adicionar um arquivo).
   */
  ezStartChange: EventEmitter<WaitingChange>;
  /**
   * Emitido quando não foi possível completar a alteração entre o evento ezStartChange e ezChange.
   */
  ezCancelWaitingChange: EventEmitter<void>;
  observeValue(newValue: Array<EzFile>, oldValue: Array<EzFile>): void;
  updateFilePointers(): void;
  observeRequestHeaders(): void;
  /**
   * Adiciona arquivos.
   */
  addFiles(files: Array<File>): Promise<void>;
  /**
   * Aplica o foco no campo.
   */
  setFocus(): Promise<void>;
  /**
   * Remove o foco do campo.
   */
  setBlur(): Promise<void>;
  addFile(file: File): Promise<void>;
  doAddFile(file: File): Promise<void>;
  finishUpload(key: string, ezFile: EzFile): void;
  updateValue(): void;
  buildProgressId(uploading: RemoteFile): string;
  updateFeedback(uf: RemoteFile): void;
  validateFile(file: File): boolean;
  showError(message: string): void;
  formatBytes(bytes: any, decimals?: number): string;
  onFileInputChange(event: any): void;
  isRemoteFile(item: EzFile | RemoteFile): boolean;
  removeFromList(name: any): void;
  removeFile(name: any): void;
  openFilesDialog(): void;
  componentDidLoad(): void;
  componentWillRender(): void;
  componentWillLoad(): Promise<void>;
  render(): any;
  buildFooter(): any;
  buildFileItem(item: EzFile | RemoteFile): any;
  evalDisabledClass(regularClasses: string, disabledClass: string): string;
}
