import { type FormField, type DataSource, type FormFieldInputProps, type FormFieldValidator, type FormFieldValueAdapter, type FormSchemaTransformer, type PostSubmissionAction } from '../types'; /** * @internal */ export interface RegistryItem { name?: string; component: T; type?: string; /** * @deprecated */ alias?: string; } export interface ComponentRegistration { name: string; load: () => Promise<{ default: T; }>; } export interface CustomControlRegistration extends ComponentRegistration> { type: string; alias?: string; } export interface FieldValueAdapterRegistration extends ComponentRegistration { type: string; } export interface FormsRegistryStoreState { controls: CustomControlRegistration[]; fieldValidators: ComponentRegistration[]; fieldValueAdapters: FieldValueAdapterRegistration[]; postSubmissionActions: ComponentRegistration[]; dataSources: ComponentRegistration>[]; expressionHelpers: Record; formSchemaTransformers: ComponentRegistration[]; } export declare function registerControl(registration: CustomControlRegistration): void; export declare function registerPostSubmissionAction(registration: ComponentRegistration): void; export declare function registerFieldValueAdapter(registration: FieldValueAdapterRegistration): void; export declare function registerFieldValidator(registration: ComponentRegistration): void; export declare function registerCustomDataSource(registration: ComponentRegistration>): void; export declare function registerExpressionHelper(name: string, fn: Function): void; export declare function registerFormSchemaTransformers(registration: ComponentRegistration): void; /** * A convenience function that returns the appropriate control for a given rendering type. */ export declare function getRegisteredControl(renderType: string): Promise>>; /** * Retrieves the appropriate field control for a question, considering missing concepts. * If the question is of type 'obs' and has a missing concept, it falls back to a disabled text input. * Otherwise, it retrieves the registered control based on the rendering specified in the question. * @param question - The FormField representing the question. * @returns The field control to be used for rendering the question. */ export declare function getFieldControlWithFallback(question: FormField): Promise>>; export declare function getRegisteredFieldValueAdapter(type: string): Promise; export declare function getRegisteredFormSchemaTransformers(): Promise; export declare function getRegisteredPostSubmissionAction(actionId: string): Promise; export declare function getRegisteredValidator(name: string): Promise; export declare function getRegisteredDataSource(name: string): Promise>; export declare function getRegisteredExpressionHelpers(): Record; //# sourceMappingURL=registry.d.ts.map