import { type Trie } from "../lib/trie.js"; import { type AnySubSchemaKey, type SchemaTraverserContext } from "../lib/json-schema/index.js"; import { type Path } from "../core/index.js"; import { type FieldsValidationMode, type Schema } from "../form/main.js"; export interface SchemaMeta { id: string; combinationBranch: boolean; } export type SubSchemas = Trie; export declare const DEFAULT_AUGMENT_SUFFIX = "ag"; export declare function createIdFactory(): () => string; export declare function isCombinationBranch(ctx: SchemaTraverserContext): boolean; export declare function isValidatableNode(validationMode: FieldsValidationMode, ctx: SchemaTraverserContext, node: Schema): boolean; export interface InsertSubSchemaIdsOptions { fieldsValidationMode?: FieldsValidationMode; /** * Created id should be valid ESM export name */ createId?: (schema: Schema, ctx: SchemaTraverserContext) => string; } export declare function insertSubSchemaIds(schema: Schema, { createId, fieldsValidationMode, }?: InsertSubSchemaIdsOptions): { subSchemas: SubSchemas; schema: Schema; }; export interface FragmentSchemaOptions { schema: Schema; subSchemas: SubSchemas; augmentSuffix?: string; } export declare function fragmentSchema({ schema, subSchemas, augmentSuffix, }: FragmentSchemaOptions): Schema[];