import { EventEmitter } from '../../stencil-public-runtime'; import { IUploadFile } from '../../utils/interfaces'; /** * ## Design System * * @slot default - Texto personalizado para o botão de upload. Se não fornecido, será exibido "Selecione o arquivo" como texto padrão. * Use este slot para personalizar o texto do botão de acordo com o contexto do upload, por exemplo: "Anexar documentos", * "Enviar imagens", etc. * @slot upload-list - Permite customizar a área de listagem de arquivos. Se utilizado, substitui a lista padrão gerada pelo componente. */ export declare class Upload { /** * Identificador único do componente; gerado automaticamente quando omitido. */ readonly customId: string; /** * Referência ao elemento host do componente. * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente. */ el: HTMLBrUploadElement; /** * Tipos de arquivo permitidos (ex.: 'image/*'). */ accept: string; /** * Rótulo exibido acima do botão de upload. */ label: string; /** * Lista de arquivos já enviados (para edição ou pré-visualização). * Pode ser uma string JSON ou um array de objetos IUploadFile. */ uploadFiles: string | IUploadFile[]; /** * Estado interno para armazenar os arquivos processados da prop uploadFiles. */ parsedUploadFiles: IUploadFile[]; /** * Evento emitido quando um arquivo é selecionado. * Este estado armazena os arquivos que foram selecionados pelo usuário. */ filesSelected: FileList | null; /** * Arquivo único quando a seleção não é múltipla. */ file: File | null; /** * Desativa interação e seleção de arquivos quando true. */ disabled: boolean; /** * Estado visual: 'info', 'warning', 'danger' ou 'success'. */ state: 'info' | 'warning' | 'danger' | 'success'; /** * Indica se o componente permite a seleção de múltiplos arquivos. * Quando definido como `true`, o usuário pode selecionar mais de um arquivo para upload. */ multiple: boolean; elementInternals: ElementInternals; /** * Emitido quando a lista de arquivos selecionados muda. */ selectedFilesChange: EventEmitter; /** * Evento emitido quando um arquivo da lista `uploadFiles` (externos) é removido pelo usuário. * O objeto emitido contém os dados do arquivo removido. */ brRemove: EventEmitter; protected uploadFilesHandler(newValue: string | IUploadFile[]): void; componentWillLoad(): void; private getCssClassMap; private handleRemoveFileSelection; private renderFilesUploaded; private onInputChange; private handleDrop; private handleDragOver; private handleFileSelection; private readonly handleInputChange; render(): any; }