import type { Schema } from 'effect'; import type { DeltaSchema, Evolution, ForbidIdField, ForbidOptionalFields, ForbidUnderscorePrefix, MergeSchemas, NextVersion, StructFieldsDecoded, StructFieldsSchema } from '../domain/schema-model/index.js'; import type { EntityESchema } from './entity-eschema.js'; import { DraftedEntityESchemaBuilder } from './drafted-entity-eschema-builder.js'; export declare class EntityESchemaBuilder { private readonly name; private readonly idField; private readonly idSchema; private readonly evolutions; readonly version: TVersion; private readonly finish; constructor(name: TName, idField: TIdField, idSchema: Schema.Codec, evolutions: readonly Evolution[], version: TVersion, finish: (version: V, evolutions: readonly Evolution[]) => EntityESchema); evolve, D extends DeltaSchema>(version: V, delta: D & ForbidUnderscorePrefix & ForbidIdField & ForbidOptionalFields, migration: (previous: StructFieldsDecoded) => StructFieldsDecoded>): EntityESchemaBuilder & { [K in keyof D as D[K] extends null ? never : K]: D[K]; } extends infer T ? { [K in keyof T]: T[K]; } : never) & Record>>; draft(delta: D & ForbidUnderscorePrefix & ForbidIdField & ForbidOptionalFields, migrations: { readonly forward: (previous: StructFieldsDecoded) => StructFieldsDecoded>; readonly backward: (draft: StructFieldsDecoded>) => StructFieldsDecoded; }): DraftedEntityESchemaBuilder & Record>>; build(): EntityESchema; } //# sourceMappingURL=entity-eschema-builder.d.ts.map