import { SharedV3ProviderMetadata } from '../../shared';

/**
 * A file that has been generated by the model.
 * Generated files as base64 encoded strings or binary data.
 * The files should be returned without any unnecessary conversion.
 */
export type LanguageModelV3File = {
  type: 'file';

  /**
   * The IANA media type of the file, e.g. `image/png` or `audio/mp3`.
   *
   * @see https://www.iana.org/assignments/media-types/media-types.xhtml
   */
  mediaType: string;

  /**
   * Generated file data as base64 encoded strings or binary data.
   *
   * The file data should be returned without any unnecessary conversion.
   * If the API returns base64 encoded strings, the file data should be returned
   * as base64 encoded strings. If the API returns binary data, the file data should
   * be returned as binary data.
   */
  data: string | Uint8Array;

  /**
   * Optional provider-specific metadata for the file part.
   */
  providerMetadata?: SharedV3ProviderMetadata;
};
