/** * V3 to V4 Config Conversion * * This module handles converting V3 configs to V4 configs internally, * allowing V3 configs to continue working with the V4 processing logic. */ import type { Schema } from "extract-pg-schema"; import type { ConfigV3, InstantiatedConfig } from "./config-types"; import type { ConfigV4, PgTsGeneratorConfig } from "./config-types-v4"; import type { CompositeProperty } from "./generators/composite-types"; import type TypeMap from "./TypeMap"; /** * Options for V3 config conversion */ export type V3ConversionOptions = { /** Suppress the deprecation warning */ suppressDeprecationWarning?: boolean; }; /** * Converts a V3 config to a V4 config structure. * * This function: * 1. Applies V3-specific defaults * 2. Creates a V4 config with wrapped hooks and metadata functions * 3. Maintains backwards compatibility through the instantiatedConfig in context * * @param v3Config - The V3 configuration * @param instantiatedConfig - The instantiated V3 config (with resolved defaults) * @param schemas - The extracted database schemas * @param options - Conversion options * @returns A V4 config that wraps the V3 behavior */ export declare function convertV3ConfigToV4(v3Config: ConfigV3, instantiatedConfig: InstantiatedConfig, schemas: Record, options?: V3ConversionOptions): ConfigV4; /** * Creates additional context data needed for V3 compatibility. * This includes the wrapped metadata functions and other V3-specific data. */ export declare function createV3CompatibilityData(v3Config: ConfigV3, instantiatedConfig: InstantiatedConfig): { wrappedMetadata: Pick; propertySortFunction: (a: CompositeProperty, b: CompositeProperty) => number; customTypeMap: TypeMap; };