···137137export { clientPluginHandler } from './plugins/@hey-api/client-core/plugin';
138138export type { Client } from './plugins/@hey-api/client-core/types';
139139export type { ExpressionTransformer } from './plugins/@hey-api/transformers/expressions';
140140+export type { TypeTransformer } from './plugins/@hey-api/transformers/types';
140141export { definePluginConfig } from './plugins/shared/utils/config';
141142export type { DefinePlugin, Plugin } from './plugins/types';
142143export { compiler, tsc } from './tsc';
···11export { defaultConfig, defineConfig } from './config';
22-export type { HeyApiTransformersPlugin } from './types';
22+export type { HeyApiTransformersPlugin, TypeTransformer } from './types';
···11+import type ts from 'typescript';
22+33+import type { GeneratedFile } from '../../../generate/file';
44+import type { IR } from '../../../ir/types';
15import type { DefinePlugin, Plugin } from '../../types';
26import type { ExpressionTransformer } from './expressions';
77+88+/**
99+ * Returns the TypeScript type node for a schema with a specific format.
1010+ * If undefined is returned, the default type will be used.
1111+ */
1212+export type TypeTransformer = ({
1313+ file,
1414+ schema,
1515+}: {
1616+ file: GeneratedFile;
1717+ schema: IR.SchemaObject;
1818+}) => ts.TypeNode | undefined;
319420export type UserConfig = Plugin.Name<'@hey-api/transformers'> & {
521 /**
···3147 * Custom transforms to apply to the generated code.
3248 */
3349 transformers?: ReadonlyArray<ExpressionTransformer>;
5050+5151+ /**
5252+ * Custom type transformers that modify the TypeScript types generated.
5353+ */
5454+ typeTransformers?: ReadonlyArray<TypeTransformer>;
3455};
35563657export type HeyApiTransformersPlugin = DefinePlugin<UserConfig>;