import { IContentItem, ILink, IRichTextImage } from '../models';
import { ElementModels } from './element-models';
export declare namespace Elements {
    type TextElement = ElementModels.IElement<string>;
    type LinkedItemsElement<TContentItem extends IContentItem = IContentItem> = ElementModels.IElement<string[]> & {
        /**
         * Linked items
         */
        linkedItems: TContentItem[];
    };
    type MultipleChoiceElement<TOptionCodenames extends string = string> = ElementModels.IElement<ElementModels.MultipleChoiceOption<TOptionCodenames>[]>;
    type DateTimeElement = ElementModels.IElement<string | null> & {
        /**
         * Display time zone
         */
        displayTimeZone: string | null;
    };
    type RichTextElement<TContentItem extends IContentItem = IContentItem> = ElementModels.IElement<string> & {
        /**
         * Links
         */
        links: ILink[];
        /**
         * Images included within rich text element
         */
        images: IRichTextImage[];
        /**
         * Array of linked item codenames
         */
        linkedItemCodenames: string[];
        /**
         * Array of linked items retrieved from `modular_content` part of the response. Not all items might be here
         * as it depends on the `depth` parameter of query.
         * The `linkedItemsReferenceHandler` configuration can be used to disable mapping of linked items
         */
        linkedItems: TContentItem[];
    };
    type NumberElement = ElementModels.IElement<number | null>;
    type AssetsElement = ElementModels.IElement<ElementModels.AssetModel[]>;
    type UrlSlugElement = ElementModels.IElement<string>;
    type TaxonomyElement<TaxonomyCodenames extends string = string, TaxonomyGroupCodename extends string = string> = ElementModels.IElement<ElementModels.TaxonomyTerm<TaxonomyCodenames>[]> & {
        /**
         * Taxonomy group
         */
        taxonomyGroup: TaxonomyGroupCodename;
    };
    type UnknownElement = ElementModels.IElement<any>;
    type CustomElement<TValue = string> = ElementModels.IElement<TValue>;
}
