/** * @since 1.0.0 * * Serializable represents an object that has self-contained Schema(s) */ import type * as Effect from "effect/Effect"; import type * as Exit from "effect/Exit"; import type * as ParseResult from "./ParseResult.js"; import * as Schema from "./Schema.js"; /** * @since 1.0.0 * @category symbol */ export declare const symbol: unique symbol; /** * @since 1.0.0 * @category model */ export interface Serializable { readonly [symbol]: Schema.Schema; } /** * @since 1.0.0 * @category model */ export declare namespace Serializable { /** * @since 1.0.0 */ type Context = T extends Serializable ? R : never; } /** * @since 1.0.0 * @category accessor */ export declare const selfSchema: (self: Serializable) => Schema.Schema; /** * @since 1.0.0 * @category symbol */ export declare const symbolResult: unique symbol; /** * @since 1.0.0 * @category model */ export interface WithResult { readonly [symbolResult]: { readonly Failure: Schema.Schema; readonly Success: Schema.Schema; }; } /** * @since 1.0.0 * @category model */ export declare namespace WithResult { /** * @since 1.0.0 */ type Context = T extends WithResult ? R : never; } /** * @since 1.0.0 * @category accessor */ export declare const failureSchema: (self: WithResult) => Schema.Schema; /** * @since 1.0.0 * @category accessor */ export declare const successSchema: (self: WithResult) => Schema.Schema; /** * @since 1.0.0 * @category accessor */ export declare const exitSchema: (self: WithResult) => Schema.Schema, Exit.Exit>; /** * @since 1.0.0 * @category model */ export interface SerializableWithResult extends Serializable, WithResult { } /** * @since 1.0.0 * @category model */ export declare namespace SerializableWithResult { /** * @since 1.0.0 */ type Context = T extends SerializableWithResult ? R | RR : never; } /** * @since 1.0.0 * @category encoding */ export declare const serialize: (self: Serializable) => Effect.Effect; /** * @since 1.0.0 * @category decoding */ export declare const deserialize: { (value: unknown): (self: Serializable) => Effect.Effect; (self: Serializable, value: unknown): Effect.Effect; }; /** * @since 1.0.0 * @category encoding */ export declare const serializeFailure: { (value: E): (self: WithResult) => Effect.Effect; (self: WithResult, value: E): Effect.Effect; }; /** * @since 1.0.0 * @category decoding */ export declare const deserializeFailure: { (value: unknown): (self: WithResult) => Effect.Effect; (self: WithResult, value: unknown): Effect.Effect; }; /** * @since 1.0.0 * @category encoding */ export declare const serializeSuccess: { (value: A): (self: WithResult) => Effect.Effect; (self: WithResult, value: A): Effect.Effect; }; /** * @since 1.0.0 * @category decoding */ export declare const deserializeSuccess: { (value: unknown): (self: WithResult) => Effect.Effect; (self: WithResult, value: unknown): Effect.Effect; }; /** * @since 1.0.0 * @category encoding */ export declare const serializeExit: { (value: Exit.Exit): (self: WithResult) => Effect.Effect>; (self: WithResult, value: Exit.Exit): Effect.Effect>; }; /** * @since 1.0.0 * @category decoding */ export declare const deserializeExit: { (value: unknown): (self: WithResult) => Effect.Effect>; (self: WithResult, value: unknown): Effect.Effect>; }; //# sourceMappingURL=Serializable.d.ts.map