/** Registry module for field type, validator, and UI adapter metadata */ import type { UiIntegration } from '@ng-forge/dynamic-forms-zod/mcp'; export interface PropertyInfo { name: string; type: string; description: string; required: boolean; default?: unknown; } export interface FieldTypeInfo { type: string; category: 'value' | 'container' | 'button' | 'display'; description: string; valueType?: string; baseInterface?: string; props: Record; validationSupported: boolean; example: string; /** Field types that this container can contain (for containers only) */ canContain?: string[]; /** Field types that this container CANNOT contain (for containers only) */ cannotContain?: string[]; /** Where this field type is allowed to be placed */ allowedIn?: string[]; /** Where this field type is NOT allowed to be placed */ notAllowedIn?: string[]; /** Whether this field type is part of core library or requires an adapter */ source: 'core' | 'adapter'; /** Minimal valid example (just required properties) */ minimalExample?: string; } export interface ValidatorInfo { type: string; category: 'built-in' | 'custom' | 'async' | 'http'; description: string; parameters: Record; example: string; } export interface WrapperInfo { /** Wrapper type discriminant (used in `wrappers: [{ type: '...' }]`) */ type: string; /** Source category: core ships from the library, demo from examples-shared-ui, adapter from a UI integration package */ category: 'core' | 'demo' | 'adapter'; /** Shipping status: `shipping` is importable from the listed package; `demo-only` lives in examples-shared-ui and is not a library primitive */ availability: 'shipping' | 'demo-only'; /** Package the wrapper is exported from */ package: string; description: string; /** Config props the wrapper accepts (keyed by prop name). Excludes the required `type` discriminant. */ props: Record; /** * Field types this wrapper auto-applies to via its `WrapperTypeDefinition.types` registration. * Empty array = the wrapper never auto-applies and must be opt-in via the field's `wrappers` array. */ autoAppliesTo: string[]; /** Angular component class that implements the wrapper */ componentName: string; /** Authoring-contract rules the wrapper component must satisfy (shared across all wrappers) */ contract: string; /** Full usage example showing the wrapper in a form config */ example: string; /** Minimal valid wrapper config entry */ minimalExample?: string; } export interface UIAdapterFieldType { type: string; componentName: string; additionalProps: Record; } export interface UIAdapterInfo { library: string; package: string; fieldTypes: UIAdapterFieldType[]; providerFunction: string; } import { type DocPage } from './documentation.js'; import { WRAPPER_AUTHORING_CONTRACT } from './wrappers.js'; export { WRAPPER_AUTHORING_CONTRACT }; export type { DocPage }; /** Get all available field types */ export declare function getFieldTypes(): FieldTypeInfo[]; /** Get a specific field type by name */ export declare function getFieldType(type: string): FieldTypeInfo | undefined; /** Get field types by category */ export declare function getFieldTypesByCategory(category: 'value' | 'container' | 'button' | 'display'): FieldTypeInfo[]; /** Get all available validators */ export declare function getValidators(): ValidatorInfo[]; /** Get a specific validator by type */ export declare function getValidator(type: string): ValidatorInfo | undefined; /** Get validators by category */ export declare function getValidatorsByCategory(category: 'built-in' | 'custom' | 'async' | 'http'): ValidatorInfo[]; /** Get all UI adapters */ export declare function getUIAdapters(): UIAdapterInfo[]; /** Get a specific UI adapter by library name */ export declare function getUIAdapter(library: UiIntegration): UIAdapterInfo | undefined; /** Get UI adapter field type configuration */ export declare function getUIAdapterFieldType(library: UiIntegration, fieldType: string): UIAdapterFieldType | undefined; /** Get all wrappers */ export declare function getWrappers(): WrapperInfo[]; /** Get a specific wrapper by type */ export declare function getWrapper(type: string): WrapperInfo | undefined; /** Get wrappers by category */ export declare function getWrappersByCategory(category: 'core' | 'demo' | 'adapter'): WrapperInfo[]; /** Get all documentation pages */ export declare function getDocPages(): DocPage[]; /** Get a specific documentation page by ID */ export declare function getDocPage(id: string): DocPage | undefined; /** Get documentation pages by category */ export declare function getDocPagesByCategory(category: string): DocPage[]; import { AddonTypeInfo, FieldAddonSupportInfo } from './addons.js'; export type { AddonTypeInfo, FieldAddonSupportInfo }; /** Get every registered addon type. */ export declare function getAddonTypes(): AddonTypeInfo[]; /** Look up a single addon type by its discriminant. */ export declare function getAddonType(type: string): AddonTypeInfo | undefined; /** Filter addon types by source (`'core'` / `'adapter'`). */ export declare function getAddonTypesByCategory(category: 'core' | 'adapter'): AddonTypeInfo[]; /** Get the per-field-type addon support map. */ export declare function getFieldAddonSupport(): FieldAddonSupportInfo[]; /** Look up addon support for a specific field type. */ export declare function getAddonSupportForField(fieldType: string): FieldAddonSupportInfo | undefined; //# sourceMappingURL=index.d.ts.map