/**
 * v1 ↔ v2 schema adapters.
 *
 * Lets consumers feed legacy v1 (docs-format) JSON directly into the
 * library's pages without code changes, and round-trip back to the
 * v1 shape when integrating with legacy backend endpoints.
 *
 * Typical usage:
 *
 *   import { v1ToV2 } from "@gxp-dev/mod-ui"
 *   const config = v1ToV2(legacyJson)
 *   // pass `config` to <ShowPage :config="config" :item="item" />
 *
 * The IndexPage and ShowPage components ALSO accept the v1 shape
 * directly — they detect it via duck-typing and apply v1ToV2 at
 * the boundary, so most consumers don't need to call this themselves.
 */
export { v1ToV2, __resetIdCounter, v1ElementToV2, v1ElementsToV2, v1CardToV2, v1CardsToV2, v1TabToV2, v1TabsToV2, } from './v1ToV2';
export type { V1PageConfig, V1TabConfig, V1CardConfig, V1FieldConfig, V2PageConfig, V2CardBundle, V2TabsBundle, } from './v1ToV2';
export { v2ToV1, v2ElementToV1, v2ElementsToV1, v2CardToV1, v2CardsToV1, v2TabToV1, v2TabsToV1, } from './v2ToV1';
export type { V2TabInput } from './v2ToV1';
export { convertV1ToV2, convertV2ToV1, __resetAutoRootCounter, } from './auto';
export type { V2BuilderSchema, V2ConvertInput, V1ConvertResult, } from './auto';
export { SNIPPET_PREFIX, SNIPPET_INSTANCE_SEP, isSnippetToken, parseSnippetToken, snippetKeyFromToken, snippetInstanceFromToken, snippetToken, isSnippetNode, snippetOverridesOf, v1SnippetNode, } from './snippets';
export type { V1SnippetNode, ParsedSnippetToken } from './snippets';
export { normalisePageConfig } from './detect';
export { v1ConditionParamToV2, v2ConditionParamToV1, v1ConditionParamsToV2, v1ColumnsToV2, v2ColumnsToV1, } from './conditionMap';
export { V1_TO_V2_CARD_TYPE, V2_TO_V1_CARD_TYPE, V1_ELEMENT_AS_CARD, } from './cardTypeMap';
export { V1_TO_V2_FIELD_TYPE, v2ToV1FieldType, type V2Discriminator, } from './fieldTypeMap';
//# sourceMappingURL=index.d.ts.map