import { BuildConfig } from './buildConfig.js'; import { AnyContentType, ContentType, Contract, PropertiesRecord, SuppliedContractValues } from './contentTypes.js'; import { DisplayTemplate, DisplayTemplateVariant } from './displayTemplates.js'; /** Defines a Optimizely CMS content type */ export declare function contentType(options: T): ContentType; /** * Defines an Optimizely CMS contract. * * @param options - The contract definition * @param options.key - Unique identifier for the contract * @param options.displayName - Human-readable name shown in the CMS UI * @param options.properties - Property definitions that will be inherited by extending content types * @returns A contract object * * @example * ```typescript * const SEOContract = contract({ * key: 'seo', * displayName: 'SEO Properties', * properties: { * metaTitle: { type: 'string' }, * metaDescription: { type: 'string' }, * } * }); * * // Content types can extend this contract * const ArticleContentType = contentType({ * key: 'article', * displayName: 'Article', * baseType: '_page', * extends: SEOContract, * properties: { * title: { type: 'string' }, * body: { type: 'richText' } * } * }); * ``` */ export declare function contract

(options: SuppliedContractValues

): Contract

; /** Defines a Optimizely CMS display template */ export declare function displayTemplate(options: T): DisplayTemplate; /** Defines a Optimizely CMS build configuration */ export declare function buildConfig(options: T): T & { __type: 'buildConfig'; }; /** * Checks if `obj` is a content type. */ export declare function isContentType(obj: unknown): obj is AnyContentType; /** * Checks if `obj` is a contract. */ export declare function isContract(obj: unknown): obj is Contract; /** * Checks if `obj` is a display template. */ export declare function isDisplayTemplate(obj: unknown): obj is DisplayTemplate; /** * Finds all content types that extend a given contract. * * @param contract - The contract to search for * @returns Array of content types that extend the contract */ export declare const findExtendingContentTypes: (contract: Contract) => AnyContentType[]; export { PropertyGroupType, ApplicationsType, ApplicationHostType, } from './buildConfig.js'; export { init as initContentTypeRegistry, isContentTypeRegistered, } from './contentTypeRegistry.js'; export { init as initDisplayTemplateRegistry } from './displayTemplateRegistry.js'; export type { AnyContentType, BaseTypes, ComponentContentType, ContentType, Contract, ExperienceContentType, FolderContentType, MediaContentType, MediaStringTypes, PageContentType, PermittedTypes, PropertiesRecord, SectionContentType, SuppliedContractValues, } from './contentTypes.js';