import { SharedContracts } from '../../contracts'; import { ElementModels } from './elements.models'; export declare namespace ContentTypeElements { export type RichTextAllowedBlock = 'images' | 'text' | 'tables' | 'components-and-items'; export type RichTextAllowedTextBlock = 'paragraph' | 'heading-one' | 'heading-two' | 'heading-three' | 'heading-four' | 'heading-five' | 'heading-six' | 'ordered-list' | 'unordered-list'; export type RichTextAllowedFormatting = 'unstyled' | 'bold' | 'italic' | 'code' | 'link' | 'subscript' | 'superscript'; export type RichTextAllowedTableBlock = 'images' | 'text'; export type RichTextImageCondition = 'at_most' | 'exactly' | 'at_least'; export type RichTextallowedImageType = 'adjustable' | 'any'; export type RichTextMaximumLengthAppliesTo = 'words' | 'characters'; export type Element = IAssetElement | ICustomElement | IDateTimeElement | IGuidelinesElement | ILinkedItemsElement | ISubpagesElement | IMultipleChoiceElement | INumberElement | IRichTextElement | ISnippetElement | ITaxonomyElement | ITextElement | IUrlSlugElement; interface IBaseElement { type: ElementModels.ElementType; content_group?: SharedContracts.IReferenceObjectContract; id?: string; codename?: string; } export interface IContentGroup extends IBaseElement { name: string; external_id?: string; } export interface IAssetElementData extends IBaseElement { name: string; type: 'asset'; external_id?: string; guidelines?: string; asset_count_limit?: { value: number; condition: 'at_most' | 'exactly' | 'at_least'; }; maximum_file_size?: number; allowed_file_types?: 'adjustable' | 'any'; image_width_limit?: { value: number; condition: 'at_most' | 'exactly' | 'at_least'; }; image_height_limit?: { value: number; condition: 'at_most' | 'exactly' | 'at_least'; }; is_required?: boolean; is_non_localizable?: boolean; default?: { global: { value: SharedContracts.IReferenceObjectContract[]; }; }; } export interface ISnippetElementData extends IBaseElement { snippet: SharedContracts.IReferenceObjectContract; type: 'snippet'; external_id?: string; } export interface ICustomElementData extends IBaseElement { name: string; type: 'custom'; source_url: string; json_parameters?: string; external_id?: string; guidelines?: string; is_required?: boolean; is_non_localizable?: boolean; allowed_elements?: SharedContracts.IReferenceObjectContract[]; } export interface IDateTimeElementData extends IBaseElement { name: string; type: 'date_time'; is_required?: boolean; is_non_localizable?: boolean; guidelines?: string; external_id?: string; default?: { global: { value: string; }; }; } export interface IGuidelinesElementData extends IBaseElement { guidelines: string; type: 'guidelines'; external_id?: string; } export interface ILinkedItemsElementData extends IBaseElement { item_count_limit?: { value: number; condition: 'at_most' | 'exactly' | 'at_least'; }; allowed_content_types?: SharedContracts.IReferenceObjectContract[]; name: string; guidelines?: string; type: 'modular_content'; is_required?: boolean; is_non_localizable?: boolean; external_id?: string; default?: { global: { value: SharedContracts.IReferenceObjectContract[]; }; }; } export interface ISubpagesElementData extends IBaseElement { item_count_limit?: { value: number; condition: 'at_most' | 'exactly' | 'at_least'; }; allowed_content_types?: SharedContracts.IReferenceObjectContract[]; name: string; guidelines?: string; type: 'subpages'; is_required?: boolean; is_non_localizable?: boolean; external_id?: string; } export interface IMultipleChoiceOption { name: string; id?: string; codename?: string; external_id?: string; } export interface IMultipleChoiceElementData extends IBaseElement { mode: 'single' | 'multiple'; options: IMultipleChoiceOption[]; name: string; type: 'multiple_choice'; is_required?: boolean; is_non_localizable?: boolean; external_id?: string; guidelines?: string; default?: { global: { value: SharedContracts.IReferenceObjectContract[]; }; }; } export interface INumberElementData extends IBaseElement { name: string; type: 'number'; is_required?: boolean; is_non_localizable?: boolean; external_id?: string; guidelines?: string; default?: { global: { value: number; }; }; } export interface IRichTextElementData extends IBaseElement { maximum_text_length?: { value: number; applies_to: RichTextMaximumLengthAppliesTo; }; maximum_image_size?: number; allowed_content_types?: SharedContracts.IReferenceObjectContract[]; allowed_item_link_types?: SharedContracts.IReferenceObjectContract[]; image_width_limit?: { value: number; condition: RichTextImageCondition; }; image_height_limit?: { value: number; condition: RichTextImageCondition; }; allowed_image_types?: RichTextallowedImageType; name: string; type: 'rich_text'; is_required?: boolean; is_non_localizable?: boolean; external_id?: string; guidelines?: string; allowed_blocks?: RichTextAllowedBlock[]; allowed_text_blocks?: RichTextAllowedTextBlock[]; allowed_formatting?: RichTextAllowedFormatting[]; allowed_table_blocks?: RichTextAllowedTableBlock[]; allowed_table_text_blocks?: RichTextAllowedTextBlock[]; allowed_table_formatting?: RichTextAllowedFormatting[]; } export interface ITaxonomyElementData extends IBaseElement { name?: string; taxonomy_group: SharedContracts.IReferenceObjectContract; guidelines?: string; type: 'taxonomy'; is_required?: boolean; is_non_localizable?: boolean; external_id?: string; term_count_limit?: { value: number; condition: 'at_most' | 'exactly' | 'at_least'; }; default?: { global: { value: SharedContracts.IReferenceObjectContract[]; }; }; } export interface ITextElementData extends IBaseElement { name: string; type: 'text'; is_required?: boolean; is_non_localizable?: boolean; external_id?: string; guidelines?: string; maximum_text_length?: { value: number; applies_to: 'words' | 'characters'; }; default?: { global: { value: string; }; }; validation_regex?: { is_active: boolean; regex: string; flags?: string | null; validation_message?: string; }; } export interface IUrlSlugElementData extends IBaseElement { depends_on: { element: SharedContracts.IReferenceObjectContract; snippet?: SharedContracts.IReferenceObjectContract; }; name: string; type: 'url_slug'; is_required?: boolean; is_non_localizable?: boolean; codename?: string; external_id?: string; guidelines?: string; validation_regex?: { is_active: boolean; regex: string; flags?: string; validation_message?: string; }; } export interface IAssetElement extends IAssetElementData { } export interface ICustomElement extends ICustomElementData { } export interface IDateTimeElement extends IDateTimeElementData { } export interface IGuidelinesElement extends IGuidelinesElementData { } export interface ILinkedItemsElement extends ILinkedItemsElementData { } export interface ISubpagesElement extends ISubpagesElementData { } export interface IMultipleChoiceElement extends IMultipleChoiceElementData { } export interface INumberElement extends INumberElementData { } export interface IRichTextElement extends IRichTextElementData { } export interface ISnippetElement extends ISnippetElementData { } export interface ITaxonomyElement extends ITaxonomyElementData { } export interface ITextElement extends ITextElementData { } export interface IUrlSlugElement extends IUrlSlugElementData { } export type ContentTypeElementModel = IAssetElement | ICustomElement | IDateTimeElement | IGuidelinesElement | ILinkedItemsElement | ISubpagesElement | IMultipleChoiceElement | INumberElement | IRichTextElement | ISnippetElement | ITaxonomyElement | ITextElement | IUrlSlugElement; export {}; }