import { MenuItem } from '../../components';
import { Icon } from '../../global/shared-types/icon.types';
import { Color } from './color.types';
import { ListSeparator } from './separator.types';
/**
 * @public
 */
export interface FileInfo {
  /**
   * ID of the file. Must be unique.
   */
  id: number | string;
  /**
   * Name of file.
   */
  filename: string;
  /**
   * Extension of file.
   */
  extension?: string;
  /**
   * Content type of file.
   */
  contentType?: string;
  /**
   * Date of last modification.
   */
  lastModified?: Date;
  /**
   * Size of file.
   */
  size?: number;
  /**
   * the file content
   */
  fileContent?: File;
  /**
   * Name of the icon to use.
   */
  icon?: string | Icon;
  /**
   * Icon color. Overrides `--icon-color`.
   *
   * @deprecated This property is deprecated and will be removed soon!
   *
   * Use the new `Icon` interface instead and write:
   * ```ts
   * icon: {
   *    name: string,
   *    color: string,
   * },
   * ```
   */
  iconColor?: Color;
  /**
   * Background color of the icon. Overrides `--icon-background-color`.
   *
   * @deprecated This property is deprecated and will be removed soon!
   *
   * Use the new `Icon` interface instead and write:
   * ```ts
   * icon: {
   *    name: string,
   *    backgroundColor: string,
   * },
   * ```
   */
  iconBackgroundColor?: Color;
  /**
   * URL where the file can be downloaded. Note that this is optional. If the
   * file cannot be directly accessed via a unique url, this property should
   * be left undefined or set to `null`.
   */
  href?: string;
  /**
   * Custom menu items for the file.
   */
  menuItems?: Array<MenuItem | ListSeparator>;
}
//# sourceMappingURL=file.types.d.ts.map