import type { Schema } from "extract-pg-schema"; import type { Config, InstantiatedConfig } from "./config-types"; import type { TypescriptConfig } from "./config-types-v4"; /** * V4 Kanel Context. * Contains clearly separated concerns with an optional backwards-compatibility field. * * Note: We use an intersection type with optional `instantiatedConfig` rather than * a union type, since AsyncLocalStorage doesn't preserve type narrowing across * async boundaries. */ export type KanelContext = { /** General TypeScript configuration affecting all TypeScript generators */ typescriptConfig: TypescriptConfig; /** Original config as passed to processDatabase (V3 or V4) */ config: Config; /** Extracted database schemas */ schemas: Record; /** * @deprecated Only present when running V3 configs for backwards compatibility. * V4 code should use the top-level context fields instead. */ instantiatedConfig?: InstantiatedConfig; }; export declare const useKanelContext: () => KanelContext; export declare const runWithContext: (context: KanelContext, fn: () => Promise) => Promise; /** * Creates a test context for V3-style testing. * For new tests, prefer creating a full V4 context instead. */ export declare const createTestContext: (instantiatedConfig: InstantiatedConfig) => KanelContext;