import type * as Cause from "effect/Cause"; import * as S from "effect/Schema"; import { copyOrigin } from "../utils.js"; type ClassAnnotations = S.Annotations.Declaration; export interface EnhancedClass extends S.Class { /** * See `copyOrigin` docs in `utils.ts` for return-type design details. */ readonly copy: ReturnType Self>>; } type MissingSelfGeneric = `Missing \`Self\` generic - use \`class Self extends ${Usage}()(${Params}{ ... })\``; type HasFields = { readonly fields: Fields; } | { readonly from: HasFields; }; type ClassOptions = { readonly strict?: boolean; }; export declare const ExtendedSchemaNoEncoded: unique symbol; export type ExtendedSchemaNoEncoded = typeof ExtendedSchemaNoEncoded; type WithEncoded = Omit & { readonly Encoded: Encoded; }; type ExtendedSchema = [Encoded] extends [ExtendedSchemaNoEncoded] ? SchemaS : WithEncoded; export type Class = EnhancedClass; /** * Like `Schema.Class`, but the resulting class accepts plain objects matching * the struct schema during encoding — not only `instanceof` or type-id * checks. * * @example * ```ts * import * as Schema from "effect/Schema" * import { Class } from "./Class.js" * * class A extends Class("A")({ a: Schema.String }) {} * * // Construction works as normal: * new A({ a: "hello" }) * * // Encoding accepts plain objects: * Schema.encodeUnknownSync(A)({ a: "hello" }) // { a: "hello" } * ``` */ export declare const Class: (identifier: string) => (fieldsOr: Fields | HasFields, annotations?: ClassAnnotations, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"Class"> : EnhancedClass, Encoded>, Brand>; /** * Like `Schema.TaggedClass`, but the resulting class accepts plain objects * matching the struct schema during encoding. * * @example * ```ts * import * as Schema from "effect/Schema" * import { TaggedClass } from "./Class.js" * * class Circle extends TaggedClass()("Circle", { * radius: Schema.Number * }) {} * * Schema.encodeUnknownSync(Circle)({ _tag: "Circle", radius: 5 }) * ``` */ export declare const TaggedClass: (identifier?: string) => (tag: Tag, fieldsOr: Fields | HasFields, annotations?: ClassAnnotations, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"TaggedClass"> : EnhancedClass; } & Fields>, Encoded>, Brand>; export declare const ErrorClass: (identifier: string) => (fieldsOr: Fields | HasFields, annotations?: ClassAnnotations, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"ErrorClass"> : EnhancedClass, Encoded>, Cause.YieldableError & Brand>; export declare const TaggedErrorClass: (identifier?: string) => (tag: Tag, fieldsOr: Fields | HasFields, annotations?: ClassAnnotations, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"TaggedErrorClass"> : EnhancedClass; } & Fields>, Encoded>, Cause.YieldableError & Brand>; export interface Opaque extends S.Opaque, Brand> { } export declare const Opaque: () => (schema: S) => Opaque & Omit; export {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY2hlbWEvQ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUcxQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUdsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBSXhDLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtBQUU3RSxNQUFNLFdBQVcsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLFNBQVMsQ0FBQyxDQUFDLEdBQUcsR0FBRztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7Q0FBRSxFQUFFLFNBQVMsQ0FDMUcsU0FBUSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO0lBRXpDOztPQUVHO0lBQ0gsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxVQUFVLENBQUMsS0FBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUE7Q0FDbEU7QUFDRCxLQUFLLGtCQUFrQixDQUFDLEtBQUssU0FBUyxNQUFNLEVBQUUsTUFBTSxTQUFTLE1BQU0sR0FBRyxFQUFFLElBQ3RFLHVEQUF1RCxLQUFLLFlBQVksTUFBTSxZQUFZLENBQUE7QUFFNUYsS0FBSyxTQUFTLENBQUMsTUFBTSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJO0lBQy9DLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFBO0NBQ3hCLEdBQUc7SUFDRixRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMs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