import { FieldType, StyleProps } from './model-fields'; export type DocumentField = DocumentStringLikeField | DocumentNumberField | DocumentBooleanField | DocumentJsonField | DocumentStyleField | DocumentRichTextField | DocumentImageField | DocumentObjectField | DocumentModelField | DocumentReferenceField | DocumentCrossReferenceField | DocumentListField; export type DocumentFieldNonLocalized = DocumentStringLikeFieldNonLocalized | DocumentNumberFieldNonLocalized | DocumentBooleanFieldNonLocalized | DocumentJsonFieldNonLocalized | DocumentStyleFieldNonLocalized | DocumentRichTextFieldNonLocalized | DocumentImageFieldNonLocalized | DocumentObjectFieldNonLocalized | DocumentModelFieldNonLocalized | DocumentReferenceFieldNonLocalized | DocumentCrossReferenceFieldNonLocalized | DocumentListFieldNonLocalized; export type DocumentFieldLocalized = DocumentStringLikeFieldLocalized | DocumentNumberFieldLocalized | DocumentBooleanFieldLocalized | DocumentJsonFieldLocalized | DocumentStyleFieldLocalized | DocumentRichTextFieldLocalized | DocumentImageFieldLocalized | DocumentObjectFieldLocalized | DocumentModelFieldLocalized | DocumentReferenceFieldLocalized | DocumentCrossReferenceFieldLocalized | DocumentListFieldLocalized; export type DocumentFieldBaseProps = DocumentFieldBasePropsForDocumentField; export type DocumentFieldSpecificProps = DocumentFieldSpecificPropsForDocumentField; export type ExtractByType = Union extends { type: Type; } ? Union : never; export type DocumentFieldForType = ExtractByType; export type DocumentFieldNonLocalizedForType = ExtractByType; export type DocumentFieldLocalizedForType = ExtractByType; export type DocumentFieldBasePropsForType = ExtractByType; export type DocumentFieldSpecificPropsForType = DocumentFieldSpecificPropsForDocumentField>; export type DocumentFieldBasePropsForDocumentField = DocField extends { localized?: false; } ? Omit> | 'localized'> : never; export type DocumentFieldSpecificPropsForDocumentField = DocField extends { locales: Record; } ? Omit : never; export type DocumentStringLikeFieldTypes = 'string' | 'url' | 'slug' | 'text' | 'markdown' | 'html' | 'enum' | 'date' | 'datetime' | 'color' | 'file'; export type DocumentStringLikeField = DocumentStringLikeFieldForType; export type DocumentStringLikeFieldNonLocalized = DistributeDocumentStringLikeFieldNonLocalized; export type DocumentStringLikeFieldLocalized = DistributeDocumentStringFieldLocalized; export type DocumentStringLikeFieldForType = Type extends DocumentStringLikeFieldTypes ? DocumentStringLikeFieldNonLocalizedForType | DocumentStringLikeFieldLocalizedForType : never; export type DistributeDocumentStringLikeFieldNonLocalized = Type extends DocumentStringLikeFieldTypes ? DocumentStringLikeFieldNonLocalizedForType : never; export type DistributeDocumentStringFieldLocalized = Type extends DocumentStringLikeFieldTypes ? DocumentStringLikeFieldLocalizedForType : never; export interface DocumentStringLikeFieldNonLocalizedForType { type: Type; localized?: false; value: string; } export interface DocumentStringLikeFieldLocalizedForType { type: Type; localized: true; locales: Record; } export type DocumentNumberField = DocumentNumberFieldNonLocalized | DocumentNumberFieldLocalized; export interface DocumentNumberFieldNonLocalized { type: 'number'; localized?: false; value: number; } export interface DocumentNumberFieldLocalized { type: 'number'; localized: true; locales: Record; } export type DocumentBooleanField = DocumentBooleanFieldNonLocalized | DocumentBooleanFieldLocalized; export interface DocumentBooleanFieldNonLocalized { type: 'boolean'; localized?: false; value: boolean; } export interface DocumentBooleanFieldLocalized { type: 'boolean'; localized: true; locales: Record; } export type DocumentStyleField = DocumentStyleFieldNonLocalized | DocumentStyleFieldLocalized; export type DocumentStyleFieldValue = Record>>; export interface DocumentStyleFieldNonLocalized { type: 'style'; localized?: false; value: DocumentStyleFieldValue; } export interface DocumentStyleFieldLocalized { type: 'style'; localized: true; locales: Record; } export type DocumentJsonField = DocumentJsonFieldNonLocalized | DocumentJsonFieldLocalized; export interface DocumentJsonFieldNonLocalized { type: 'json'; localized?: false; value: any; } export interface DocumentJsonFieldLocalized { type: 'json'; localized: true; locales: Record; } export type DocumentRichTextField = DocumentRichTextFieldNonLocalized | DocumentRichTextFieldLocalized; export type DocumentRichTextFieldValue = any; export interface DocumentRichTextFieldNonLocalized { type: 'richText'; localized?: false; value: DocumentRichTextFieldValue; hint?: string; } export interface DocumentRichTextFieldLocalized { type: 'richText'; localized: true; locales: Record; } export type DocumentImageField = DocumentImageFieldNonLocalized | DocumentImageFieldLocalized; export interface DocumentImageFieldNonLocalized { type: 'image'; localized?: false; source?: string; sourceData?: any; fields?: ImageFields; } export interface DocumentImageFieldLocalized { type: 'image'; localized: true; source?: string; locales: Record; } export type ImageFields = { title: DocumentStringLikeFieldForType<'string'>; url: DocumentStringLikeFieldForType<'string'>; }; export type DocumentObjectField = DocumentObjectFieldNonLocalized | DocumentObjectFieldLocalized; export interface DocumentObjectFieldNonLocalized { type: 'object'; localized?: false; fields: Record; } export interface DocumentObjectFieldLocalized { type: 'object'; localized: true; locales: Record; }>; } export type DocumentModelField = DocumentModelFieldNonLocalized | DocumentModelFieldLocalized; export interface DocumentModelFieldNonLocalized { type: 'model'; localized?: false; modelName: string; fields: Record; } export interface DocumentModelFieldLocalized { type: 'model'; localized: true; locales: Record; }>; } export type DocumentReferenceField = DocumentReferenceFieldNonLocalized | DocumentReferenceFieldLocalized; export interface DocumentReferenceFieldNonLocalized { type: 'reference'; refType: 'document' | 'asset'; localized?: false; refId: string; } export interface DocumentReferenceFieldLocalized { type: 'reference'; refType: 'document' | 'asset'; localized: true; locales: Record; } export type DocumentCrossReferenceField = DocumentCrossReferenceFieldNonLocalized | DocumentCrossReferenceFieldLocalized; export interface DocumentCrossReferenceFieldNonLocalized { type: 'cross-reference'; refType: 'document' | 'asset'; localized?: false; refId: string; refSrcType: string; refProjectId: string; } export interface DocumentCrossReferenceFieldLocalized { type: 'cross-reference'; refType: 'document' | 'asset'; localized: true; locales: Record; } export type DocumentListField = DocumentListFieldNonLocalized | DocumentListFieldLocalized; export type DocumentListFieldItems = Exclude; export interface DocumentListFieldNonLocalized { type: 'list'; localized?: false; items: DocumentListFieldItems[]; } export interface DocumentListFieldLocalized { type: 'list'; localized: true; locales: Record; } //# sourceMappingURL=content-source-document-fields.d.ts.map