import * as z from "zod"; import { type Inflection } from "../../core/dataModel/aliases.js"; declare const configSchema: z.ZodObject<{ alias: z.ZodOptional, z.ZodString>>; scalarField: z.ZodOptional], z.ZodUnknown>, z.ZodString>>; parentField: z.ZodOptional; relationToFields: z.ZodArray; }>, "strip", z.ZodTypeAny, { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }>, z.ZodRecord], z.ZodUnknown>, z.ZodString>>; childField: z.ZodOptional; relationToFields: z.ZodArray; }>, "strip", z.ZodTypeAny, { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }>, z.ZodObject; relationToFields: z.ZodArray; }>, "strip", z.ZodTypeAny, { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }>, z.ZodRecord], z.ZodUnknown>, z.ZodString>>; oppositeBaseNameMap: z.ZodOptional>; }, "strip", z.ZodTypeAny, { modelName?: ((args_0: string, ...args_1: unknown[]) => string) | undefined; childField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_2: Record, ...args_3: unknown[]) => string) | undefined; oppositeBaseNameMap?: Record | undefined; parentField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: Record, ...args_2: unknown[]) => string) | undefined; scalarField?: ((args_0: { name: string; type: string; }, ...args_1: unknown[]) => string) | undefined; }, { modelName?: ((args_0: string, ...args_1: unknown[]) => string) | undefined; childField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_2: Record, ...args_3: unknown[]) => string) | undefined; oppositeBaseNameMap?: Record | undefined; parentField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: Record, ...args_2: unknown[]) => string) | undefined; scalarField?: ((args_0: { name: string; type: string; }, ...args_1: unknown[]) => string) | undefined; }>, z.ZodBoolean]>>>; override: z.ZodOptional; fields: z.ZodOptional>; }, "strip", z.ZodTypeAny, { name?: string | undefined; fields?: Record | undefined; }, { name?: string | undefined; fields?: Record | undefined; }>>>; }, "strip", z.ZodTypeAny, { inflection: boolean | { modelName?: ((args_0: string, ...args_1: unknown[]) => string) | undefined; childField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_2: Record, ...args_3: unknown[]) => string) | undefined; oppositeBaseNameMap?: Record | undefined; parentField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: Record, ...args_2: unknown[]) => string) | undefined; scalarField?: ((args_0: { name: string; type: string; }, ...args_1: unknown[]) => string) | undefined; }; override?: Record | undefined; }> | undefined; }, { inflection?: boolean | { modelName?: ((args_0: string, ...args_1: unknown[]) => string) | undefined; childField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_2: Record, ...args_3: unknown[]) => string) | undefined; oppositeBaseNameMap?: Record | undefined; parentField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: Record, ...args_2: unknown[]) => string) | undefined; scalarField?: ((args_0: { name: string; type: string; }, ...args_1: unknown[]) => string) | undefined; } | undefined; override?: Record | undefined; }> | undefined; }>>; adapter: z.ZodType<() => import("../../core/databaseClient.js").DatabaseClient | Promise>, z.ZodTypeDef, () => import("../../core/databaseClient.js").DatabaseClient | Promise>>; fingerprint: z.ZodOptional]>; }, "strip", z.ZodTypeAny, { count: number | { min: number; max: number; }; }, { count: number | { min: number; max: number; }; }>, z.ZodObject<{ options: z.ZodRecord; }, "strip", z.ZodTypeAny, { options: Record; }, { options: Record; }>, z.ZodObject<{ schema: z.ZodRecord; }, "strip", z.ZodTypeAny, { schema: Record; }, { schema: Record; }>, z.ZodObject<{ description: z.ZodOptional; examples: z.ZodOptional>; itemCount: z.ZodOptional; }, "strip", z.ZodTypeAny, { description?: string | undefined; examples?: string[] | undefined; itemCount?: number | undefined; }, { description?: string | undefined; examples?: string[] | undefined; itemCount?: number | undefined; }>]>>>>; select: z.ZodOptional>; }, "strip", z.ZodTypeAny, { adapter: () => import("../../core/databaseClient.js").DatabaseClient | Promise>; alias?: { inflection: boolean | { modelName?: ((args_0: string, ...args_1: unknown[]) => string) | undefined; childField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_2: Record, ...args_3: unknown[]) => string) | undefined; oppositeBaseNameMap?: Record | undefined; parentField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: Record, ...args_2: unknown[]) => string) | undefined; scalarField?: ((args_0: { name: string; type: string; }, ...args_1: unknown[]) => string) | undefined; }; override?: Record | undefined; }> | undefined; } | undefined; fingerprint?: Record; } | { schema: Record; } | { description?: string | undefined; examples?: string[] | undefined; itemCount?: number | undefined; }>> | undefined; select?: string[] | undefined; }, { adapter: () => import("../../core/databaseClient.js").DatabaseClient | Promise>; alias?: { inflection?: boolean | { modelName?: ((args_0: string, ...args_1: unknown[]) => string) | undefined; childField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_2: Record, ...args_3: unknown[]) => string) | undefined; oppositeBaseNameMap?: Record | undefined; parentField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: Record, ...args_2: unknown[]) => string) | undefined; scalarField?: ((args_0: { name: string; type: string; }, ...args_1: unknown[]) => string) | undefined; } | undefined; override?: Record | undefined; }> | undefined; } | undefined; fingerprint?: Record; } | { schema: Record; } | { description?: string | undefined; examples?: string[] | undefined; itemCount?: number | undefined; }>> | undefined; select?: string[] | undefined; }>; type SeedConfigInferred = z.infer; export interface SeedConfig { /** * The database adapter to use. * * @example * ```ts seed.config.ts * import { SeedPostgres } from "@snaplet/seed/adapter-postgres"; * import { defineConfig } from "@snaplet/seed/config"; * import postgres from "postgres"; * * export default defineConfig({ * adapter: () => { * const client = postgres(process.env.DATABASE_URL); * return new SeedPostgres(client); * }, * }); * ``` * * To learn more about the available adapters, see the [Adapters](https://docs.snaplet.dev/seed/reference/adapters) reference. */ adapter: SeedConfigInferred["adapter"]; alias?: { /** * Apply a global renaming strategy to all tables and columns in the generated Seed Client. * * When `true`, a default strategy is applied: * * - **Model names:** pluralized and camelCased. * - **Scalar field names:** camelCased. * - **Parent field names (one to one relationships):** singularized and camelCased. * - **Child field names (one to many relationships):** pluralized and camelCased. * - We also support prefix extraction and opposite baseName for foreign keys inspired by [PostGraphile](https://github.com/graphile/pg-simplify-inflector#naming-your-foreign-key-fields). * * @example * ```ts seed.client.ts * import { defineConfig } from "@snaplet/seed/config"; * * export default defineConfig({ * alias: { * inflection: true, * }, * }); * ``` */ inflection?: Partial | boolean; /** * Rename specific tables and columns in the generated Seed Client. * This option is useful for resolving renaming conflicts that can arise when using `alias.inflection`. * * @example * ```ts seed.client.ts * import { defineConfig } from "@snaplet/seed/config"; * * export default defineConfig({ * alias: { * override: { * Book: { * name: "books", * fields: { * User: "author", * published_at: "publishedAt", * }, * }, * }, * }, * }); * ``` */ override?: NonNullable["override"]; }; fingerprint?: SeedConfigInferred["fingerprint"]; /** * Exclude or include tables from the generated Seed Client. * You can specify glob patterns to match tables. The patterns are executed in order. * * @example Exclude all tables containing `access_logs` and all tables in the `auth` schema: * ```ts seed.client.ts * import { defineConfig } from "@snaplet/seed/config"; * * export default defineConfig({ * select: ["!*access_logs*", "!auth.*"], * }); * ``` * * @example Exclude all tables except the public schema: * ```ts seed.client.ts * import { defineConfig } from "@snaplet/seed/config"; * * export default defineConfig({ * select: ["!*", "public.*"], * }); * ``` */ select?: SeedConfigInferred["select"]; } export declare function getSeedConfig(props?: { disablePatch?: boolean; }): Promise<{ adapter: () => import("../../core/databaseClient.js").DatabaseClient | Promise>; alias?: { inflection: boolean | { modelName?: ((args_0: string, ...args_1: unknown[]) => string) | undefined; childField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_2: Record, ...args_3: unknown[]) => string) | undefined; oppositeBaseNameMap?: Record | undefined; parentField?: ((args_0: { relationFromFields: string[]; relationToFields: string[]; name: string; type: string; }, args_1: Record, ...args_2: unknown[]) => string) | undefined; scalarField?: ((args_0: { name: string; type: string; }, ...args_1: unknown[]) => string) | undefined; }; override?: Record | undefined; }> | undefined; } | undefined; fingerprint?: Record; } | { schema: Record; } | { description?: string | undefined; examples?: string[] | undefined; itemCount?: number | undefined; }>> | undefined; select?: string[] | undefined; } | SeedConfig>; export declare function getSeedConfigPath(): Promise; export declare function seedConfigExists(): Promise; export declare function setSeedConfig(template: string): Promise; export {};