import { RegistryEntry } from '../model/contentTypeRegistry.js'; import { AnyProperty } from '../model/properties.js'; /** * Options for controlling GraphQL fragment generation behavior. */ export type FragmentOptions = { /** * Enable Digital Asset Management (DAM) support for contentReference properties. * When true, includes specialized fragments for DAM assets (images, videos, files). * @default false */ damEnabled?: boolean; /** * Maximum number of fragments allowed before logging performance warnings. * Helps prevent excessive GraphQL query complexity from unrestricted content types. */ maxFragmentThreshold?: number; /** * Enable or disable contract expansion. * When true, contracts are expanded to include all implementing types. * When false, only the contract itself is included without expansion. */ expandContracts?: boolean; /** * Whether to include CMS base type fragments (e.g., _IContent, _IPage) in generated fragments. * Set to false for component property fragments that don't need base metadata. * @default true */ includeBaseFragments?: boolean; }; export type FragmentInfo = { fields: string[]; extraFragments: string[]; includesDamAssetsFragments: boolean; }; export type PropertyHandler = (name: string, property: AnyProperty, rootName: string, suffix: string, visited: Set, options: FragmentOptions) => FragmentInfo; /** * Retrieves cached content type definitions. */ export declare const getCachedContentTypes: () => RegistryEntry[]; /** * Refreshes the cached content type definitions. */ export declare const refreshCache: () => void; /** * Checks if a content type is an experience component. */ export declare const isExperienceComponent: (contentType: RegistryEntry) => boolean; /** * Converts a property definition into GraphQL fields and fragments. */ export declare const convertProperty: PropertyHandler;