import { ISchemaComponentConfig, ISchemaNodeWithMeta, SchemaChildrenConfigGenerator, SchemaChildrenInserter, SchemaChildrenRemover } from './types'; export type SpecificCaseSchemaChildrenReplacer = (originalConfig: ISchemaComponentConfig, replacementConfig: ISchemaComponentConfig) => ISchemaComponentConfig; export type SpecificCaseSchemaChildrenRemover = (config: ISchemaComponentConfig, delegate: SchemaChildrenRemover) => ISchemaComponentConfig; export type SpecificCaseSchemaChildrenInserter = (parent: ISchemaComponentConfig, child: ISchemaComponentConfig, updateSource: string, delegate: SchemaChildrenInserter) => ISchemaComponentConfig; export type SpecificCaseSchemaChildRemover = (parent: ISchemaComponentConfig, child: ISchemaComponentConfig, source: string) => ISchemaComponentConfig; export declare function register(config: { componentType: string; yieldChildren: SchemaChildrenConfigGenerator; omitChildren: SpecificCaseSchemaChildrenRemover; insertChild: SpecificCaseSchemaChildrenInserter; removeChild: SpecificCaseSchemaChildRemover; alwaysRemoveWhenEmpty?: boolean; }): void; export declare function yieldChildren(config: ISchemaComponentConfig): IterableIterator; export declare function omitChildren(config: ISchemaComponentConfig): ISchemaComponentConfig; export declare function insertChild(parentConfig: ISchemaComponentConfig, childConfig: ISchemaComponentConfig, updateSource: string): ISchemaComponentConfig; export declare function removeChild(parentConfig: ISchemaComponentConfig, childConfig: ISchemaComponentConfig, source: string): ISchemaComponentConfig; export interface IComponentIteratorRegistry { get(componentType: string): (node: ISchemaComponentConfig) => IterableIterator; } export declare const componentIteratorRegistry: IComponentIteratorRegistry; export declare const solutionRemoverStrategies: { nop: SpecificCaseSchemaChildRemover; cleanupFrom: SpecificCaseSchemaChildRemover; removeChild: SpecificCaseSchemaChildRemover; }; export declare function shouldAlwaysRemoveWhenEmpty(componentType?: string): boolean;