import Image from './image'; interface AbstractField { type: FieldTypes; order?: number; title?: string; hideTitle?: boolean; } export interface AttributeField extends AbstractField { type: 'attribute'; value: string; } export interface TextField extends AbstractField { type: 'text'; value: string; } export interface NumberField extends AbstractField { type: 'number'; value: number; } export interface GalleryField extends AbstractField { type: 'gallery'; value: ImageField[]; } export interface ImageField extends AbstractField { type: 'image'; value: { description?: string; image?: Image; }; } export interface VideoField extends AbstractField { type: 'video'; value: { description?: string; url?: string; autoPlay?: boolean; loop?: boolean; }; } export interface MappedEventField extends AbstractField { type: 'mappedEvent'; value: { description?: string; image?: Image; hideDate?: boolean; hideCustodian?: boolean; hideOwnershipRequestAcceptedResponse?: boolean; hidePrice?: boolean; }; } export declare type FieldTypes = 'attribute' | 'number' | 'gallery' | 'image' | 'text' | 'mappedEvent' | 'video'; export declare type Field = AttributeField | NumberField | GalleryField | ImageField | TextField | MappedEventField | VideoField; export declare type Fields = Field[]; export default Fields;