UNPKG

cogsbox-shape

Version:

A TypeScript library for creating type-safe database schemas with Zod validation, SQL type definitions, and automatic client/server transformations. Unifies client, server, and database types through a single schema definition, with built-in support for r

940 lines (939 loc) 197 kB
declare const schemas: { user: { _tableName: string; id: { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: import("zod").ZodNumber; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodNumber; initialState: import("zod").ZodNumber; client: import("zod").ZodNumber; }) => TValidationNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }; }; }; }; client: <TClientNext extends import("zod").ZodTypeAny>(schema: TClientNext | ((tools: { sql: import("zod").ZodNumber; initialState: import("zod").ZodNumber; }) => TClientNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodNumber; initialState: import("zod").ZodNumber; client: TClientNext; }) => TValidationNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }; }; }; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }; }; }; }; transform: (transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: number; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: import("zod").ZodNumber; } & { transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }; }; }; initialState: { <TDefaultNext>(defaultValue: () => TDefaultNext): { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: import("zod").ZodNumber; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodNumber; initialState: import("zod").ZodNumber; client: import("zod").ZodNumber; }) => TValidationNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }; }; }; }; client: <TClientNext extends import("zod").ZodTypeAny>(schema: TClientNext | ((tools: { sql: import("zod").ZodNumber; initialState: import("zod").ZodNumber; }) => TClientNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodNumber; initialState: import("zod").ZodNumber; client: TClientNext; }) => TValidationNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }; }; }; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }; }; }; }; transform: (transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodNumber; zodValidationSchema: import("zod").ZodNumber; } & { transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }; }; }; }; <TNewNext extends import("zod").ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: { sql: import("zod").ZodNumber; }) => TNewNext), defaultValue: () => TDefaultNext): { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>; zodValidationSchema: import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodNumber; initialState: TNewNext; client: import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>; }) => TValidationNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>; toDb: (clientValue: import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>; toDb: (clientValue: import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>) => number; }; }; }; }; client: <TClientNext extends import("zod").ZodTypeAny>(schema: TClientNext | ((tools: { sql: import("zod").ZodNumber; initialState: TNewNext; }) => TClientNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodNumber; initialState: TNewNext; client: TClientNext; }) => TValidationNext)) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }; }; }; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => number; }; }; }; }; transform: (transforms: { toClient: (dbValue: number) => import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>; toDb: (clientValue: import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>) => number; }) => { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>; zodValidationSchema: import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>; } & { transforms: { toClient: (dbValue: number) => import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>; toDb: (clientValue: import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends number ? TNewNext : import("zod").ZodUnion<[import("zod").ZodNumber, TNewNext]>>) => number; }; }; }; }; }; }; firstname: { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; }; transform: (transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; } & { transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }; }; }; }; surname: { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; }; transform: (transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; } & { transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }; }; }; }; email: { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; }; transform: (transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; } & { transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }; }; }; }; pets: () => { type: "hasMany"; fromKey: string; toKey: string | { config: { sql: { type: "int"; pk: true; }; zodSqlSchema: import("zod").ZodNumber; zodNewSchema: import("zod").ZodNumber; initialValue: string; zodClientSchema: import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodNumber]>; zodValidationSchema: import("zod").ZodString; } & { transforms: { toClient: (dbValue: number) => number; toDb: (clientValue: number) => number; }; }; } | { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodString; initialState: import("zod").ZodString; client: import("zod").ZodString; }) => TValidationNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }; }; }; }; client: <TClientNext extends import("zod").ZodTypeAny>(schema: TClientNext | ((tools: { sql: import("zod").ZodString; initialState: import("zod").ZodString; }) => TClientNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodString; initialState: import("zod").ZodString; client: TClientNext; }) => TValidationNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }; }; }; }; transform: (transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; } & { transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }; }; }; }; transform: (transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: string; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; } & { transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }; }; }; initialState: { <TDefaultNext>(defaultValue: () => TDefaultNext): { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodString; initialState: import("zod").ZodString; client: import("zod").ZodString; }) => TValidationNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodString; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodString; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }; }; }; }; client: <TClientNext extends import("zod").ZodTypeAny>(schema: TClientNext | ((tools: { sql: import("zod").ZodString; initialState: import("zod").ZodString; }) => TClientNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodString; initialState: import("zod").ZodString; client: TClientNext; }) => TValidationNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }; }; }; }; transform: (transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; } & { transforms: { toClient: (dbValue: string) => import("zod").TypeOf<TClientNext>; toDb: (clientValue: import("zod").TypeOf<TClientNext>) => string; }; }; }; }; transform: (transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: import("zod").ZodString; initialValue: TDefaultNext; zodClientSchema: import("zod").ZodString; zodValidationSchema: import("zod").ZodString; } & { transforms: { toClient: (dbValue: string) => string; toDb: (clientValue: string) => string; }; }; }; }; <TNewNext extends import("zod").ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: { sql: import("zod").ZodString; }) => TNewNext), defaultValue: () => TDefaultNext): { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>; zodValidationSchema: import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodString; initialState: TNewNext; client: import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>; }) => TValidationNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>; zodValidationSchema: TValidationNext; }; transform: (transforms: { toClient: (dbValue: string) => import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>>; toDb: (clientValue: import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>>) => string; }) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>; zodValidationSchema: TValidationNext; } & { transforms: { toClient: (dbValue: string) => import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>>; toDb: (clientValue: import("zod").TypeOf<import("zod").TypeOf<TNewNext> extends string ? TNewNext : import("zod").ZodUnion<[import("zod").ZodString, TNewNext]>>) => string; }; }; }; }; client: <TClientNext extends import("zod").ZodTypeAny>(schema: TClientNext | ((tools: { sql: import("zod").ZodString; initialState: TNewNext; }) => TClientNext)) => { config: { sql: { type: "varchar"; length: number; }; zodSqlSchema: import("zod").ZodString; zodNewSchema: TNewNext; initialValue: import("zod").TypeOf<TNewNext>; zodClientSchema: TClientNext; zodValidationSchema: TClientNext; }; validation: <TValidationNext extends import("zod").ZodTypeAny>(schema: TValidationNext | ((tools: { sql: import("zod").ZodString; initialState: TNewNext; client: TClientNext; }) => TValidationNext)) => { config: { sql: { type: "varchar";