import { VegaSlimmer } from '../../vega-slimmer/vega-slimmer-core';
import { Nullable } from '../../types/general';
/**
 * Filters dropped/selected files based on the accepted file types specified in the host component's `accept` property.
 *
 * The host component is expected to expose a string `accept` property using the same syntax as the standard
 * HTML `<input type="file">` `accept` attribute (file extensions like `.png`, MIME types like `image/png`,
 * MIME wildcards like `image/*`, or the universal wildcards `*` / `*\/*` / `/*`).
 *
 * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept
 */
export declare class DropFileAcceptFilterSlimmer<T extends string = string> extends VegaSlimmer {
  protected accept: Nullable<T>;
  /**
   * Filters the files based on accepted file types if specified.
   *
   * @param {FileList|null} fileList - FileList is a FileList object
   * @returns {File[]} An array of `File` objects after filtering based on the accepted file types specified in the `accept` property
   */
  process(fileList: Nullable<FileList>): File[];
  /**
   * Checks if a given file matches any of the accepted file types based on file name, MIME type, or base type.
   *
   * @param {File} file - File object
   * @param {string[]} acceptTypes - An array of strings that represent the file types that are accepted.
   * @returns {boolean} A boolean value, indicating whether the provided file matches any of the accepted file types specified in the `acceptTypes` array.
   */
  private validateFileType;
}
