import { Ref } from 'vue'; export interface Dataset { [key: string]: | string | Ref | boolean | Array | Array<Description> | Array<Person> | number | (IErrorMessage | undefined) | Coverage | Array<File>; language: Ref<string>; // licenses: Array<number>; rights: boolean; type: string; creating_corporation: string; titles: Array<Title>; descriptions: Array<Description>; authors: Array<Person>; contributors: Array<Person>; project_id?: number; embargo_date?: string; coverage: Coverage; errors?: IErrorMessage; // async (user): Promise<void>; subjects: Array<Subject>; files: Array<TestFile> | undefined; // upload: TethysFile } /** Provides information about files and allows JavaScript in a web page to access their content. */ export interface TestFile extends Blob { readonly lastModified: number; readonly name: string; readonly webkitRelativePath: string; label: string; sorting: number; } // export interface TethysFile { // label: string, // sorting: number, // upload: File, // } export interface Subject { // id: number; language: string; type: string; value: string; external_key?: string; } export interface Title { value: string; type: string; language: string | Ref<string>; } export interface Description { value: string; type: string; language: string | Ref<string>; } export interface Person { id: number; name: string; email: string; name_type: string; identifier_orcid: string; datasetCount: string; created_at: string; } interface IErrorMessage { [key: string]: Array<string>; } export interface Coverage { x_min?: number; y_min?: number; x_max?: number; y_max?: number; elevation_min?: number; elevation_max?: number; elevation_absolut?: number; depth_min?: number; depth_max?: number; depth_absolut?: number; time_min?: number; time_max?: number; time_absolut?: number; }