import { z } from "zod"; import { BaseModel, type IModelData as ExtractModelData } from "./BaseModel.js"; export type ModelClass> = { __schema: TModel["__schema"]; new (data: ExtractModelData): TModel; create(data: ExtractModelData): TModel; }; export declare const createModelSchema: (factory: (zod: typeof z) => TReturn) => z.ZodObject<{ -readonly [P in keyof TReturn]: TReturn[P]; }, z.core.$strip>; export declare class ModelBuilder> { private name; private schema; private readonly methods; constructor(name: string, schema: TModel["__schema"]); extendSchema(extensionFn: (zod: typeof z) => TExt): this; withMethods(methods: TExtMethods & ThisType): ModelBuilder; getSchema(): TModel["__schema"]; build(): ModelClass; }