import { MetadataFieldType } from './requests.js';

interface GetMetadataFieldValueResult {
    _links: {
        self: string;
        vocabulary: string;
    };
    index: number;
    value: string;
}
interface ListFieldValuesResult {
    _links: {
        self: string;
    };
    vocabulary: string[];
}
interface ListMetadataTypesResult {
    types: {
        fields: {
            discriminator: string;
            displayKey: string;
            displayName: string;
            editable: boolean;
            itemList?: {
                items: {
                    displayName: string;
                    uuid: string;
                }[];
            };
            required: boolean;
            uuid: string;
        }[];
        name: string;
        use: string;
        uuid: string;
    }[];
}
interface ListViewableMetadataFieldsResult {
    fields: {
        display_key: string;
        display_name: string;
        field_type: MetadataFieldType;
        metadata_types: string[];
    }[];
}

export type { GetMetadataFieldValueResult, ListFieldValuesResult, ListMetadataTypesResult, ListViewableMetadataFieldsResult };
