import * as Effect from "./Effect.ts"; import * as Exit from "./Exit.ts"; import * as Option from "./Option.ts"; import * as Result from "./Result.ts"; import type * as Schema from "./Schema.ts"; import * as SchemaAST from "./SchemaAST.ts"; import * as SchemaIssue from "./SchemaIssue.ts"; /** * Creates an effectful maker for the schema's decoded type side. * * **When to use** * * Use to construct decoded schema values in `Effect` while preserving * construction failures as `SchemaIssue.Issue` values in the error channel. * * **Details** * * The returned function accepts constructor input, applies constructor defaults, * runs type-side validation unless checks are disabled, and fails with a * `SchemaIssue.Issue` when construction fails. * * @stability stable * @category constructors * @since 4.0.0 */ export declare function makeEffect(schema: S): (input: S["~type.make.in"], options?: Schema.MakeOptions) => Effect.Effect; /** * Creates a synchronous maker that returns `Option.some` with the constructed * value on success, or `Option.none` when construction fails with schema issues. * * **When to use** * * Use when you need to validate schema constructor input and only care whether * construction succeeds, without exposing `SchemaIssue.Issue` details. * * **Gotchas** * * Only causes made entirely of schema issues are converted to `Option.none`. * Causes that contain defects, interruptions, or asynchronous work at this * synchronous boundary throw an `Error` whose cause is the underlying `Cause`. * * @stability stable * @category constructors * @since 4.0.0 */ export declare function makeOption(schema: S): (input: S["~type.make.in"], options?: Schema.MakeOptions) => Option.Option; /** * Creates a synchronous maker for the schema's decoded type side. * * **When to use** * * Use to construct decoded schema values synchronously when invalid input * should throw an `Error` whose cause is `SchemaIssue.Issue`. * * **Details** * * The returned function constructs a value from constructor input and throws an * `Error` with the `SchemaIssue.Issue` in its `cause` when construction fails. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or asynchronous work at this * synchronous boundary throw an `Error` whose cause is the underlying `Cause`, * instead of being converted to a schema validation error. * * @stability stable * @category constructors * @since 4.0.0 */ export declare function make(schema: S): (input: S["~type.make.in"], options?: Schema.MakeOptions) => S["Type"]; /** * Creates a type guard that checks whether an input satisfies the schema's decoded * type side. * * **When to use** * * Use to build a type guard for checking the decoded side of a schema without * exposing issue details. * * **Details** * * The guard returns `true` on successful validation and `false` when validation * fails only with schema issues, without exposing issue details. * * **Gotchas** * * Only causes made entirely of schema issues are converted to `false`. Causes * that contain defects, interruptions, or asynchronous work at this synchronous * boundary throw an `Error` whose cause is the underlying `Cause`. * * @stability stable * @category guards * @since 3.10.0 */ export declare function is(schema: S): (input: I) => input is I & S["Type"]; /** * Asserts that an input satisfies the schema's decoded type side. * * **When to use** * * Use to assert that an input satisfies the decoded side of a schema when schema * validation failures should throw an `Error` whose cause is `SchemaIssue.Issue`. * * **Details** * * The assertion returns normally when validation succeeds. When the input does * not satisfy the schema with a schema-only failure, it throws an `Error` with * the `SchemaIssue.Issue` in its `cause`. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or asynchronous work at this * synchronous boundary throw an `Error` whose cause is the underlying `Cause`, * instead of being converted to a schema validation error. * * @stability stable * @category guards * @since 4.0.0 */ export declare function asserts(schema: S, input: I): asserts input is I & S["Type"]; /** * Creates an effectful decoder for `unknown` input. * * **When to use** * * Use when you need to decode untyped boundary input in an `Effect` whose * failure channel is `SchemaIssue.Issue`, while preserving transformations * and service requirements. * * **Details** * * The returned function succeeds with the schema's decoded `Type` or fails with a * `SchemaIssue.Issue`. Decoding service requirements are preserved in the returned * `Effect`. Parse options may be provided when creating the decoder and overridden * when applying it. * * @see {@link decodeEffect} for input already typed as the schema's `Encoded` type * * @stability stable * @category decoding * @since 4.0.0 */ export declare function decodeUnknownEffect(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => Effect.Effect; /** * Creates an effectful decoder for input already typed as the schema's `Encoded` * type. * * **When to use** * * Use when you already have input typed as the schema's `Encoded` type and * need an `Effect` whose failure channel is `SchemaIssue.Issue`, while * preserving decoding service requirements. * * **Details** * * The returned function succeeds with the decoded `Type` or fails with a * `SchemaIssue.Issue`, preserving any decoding service requirements in the * returned `Effect`. * * @see {@link decodeUnknownEffect} for untyped boundary input * @see {@link encodeEffect} for the opposite direction * * @stability stable * @category decoding * @since 4.0.0 */ export declare const decodeEffect: (schema: S, options?: SchemaAST.ParseOptions) => (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Effect.Effect; /** * Creates a Promise-based decoder for `unknown` input. * * **When to use** * * Use when you need to decode untyped input with a service-free schema and * return a JavaScript `Promise`. * * **Details** * * The returned function resolves with the decoded `Type` on success and rejects * with an `Error` whose cause is a `SchemaIssue.Issue` on decoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or other non-schema reasons reject * with an `Error` whose cause is the underlying `Cause`. * * @see {@link decodePromise} for input already typed as the schema's `Encoded` type * @see {@link decodeUnknownEffect} for schemas that require decoding services or when failures should remain in `Effect` * * @stability stable * @category decoding * @since 3.10.0 */ export declare function decodeUnknownPromise>(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => Promise; /** * Creates a Promise-based decoder for input already typed as the schema's * `Encoded` type. * * **When to use** * * Use when you already have input typed as the schema's `Encoded` type and need * decoding to return a JavaScript `Promise`. * * **Details** * * The returned function resolves with the decoded `Type` on success and rejects * with an `Error` whose cause is a `SchemaIssue.Issue` on decoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or other non-schema reasons reject * with an `Error` whose cause is the underlying `Cause`. * * @see {@link decodeUnknownPromise} for untyped input returning a JavaScript `Promise` * @see {@link decodeEffect} for preserving decoding services and failures in `Effect` * * @stability stable * @category decoding * @since 3.10.0 */ export declare function decodePromise>(schema: S, options?: SchemaAST.ParseOptions): (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Promise; /** * Creates a synchronous decoder for `unknown` input that reports failure safely * as an `Exit`. * * **When to use** * * Use when you need to decode unknown input synchronously into an `Exit` whose * failure contains `SchemaIssue.Issue`. * * **Details** * * The returned function produces `Exit.Success` with the decoded `Type`. * Schema issues are represented by an `Exit.Failure` cause containing a * `SchemaIssue.Issue`. * * **Gotchas** * * Because this adapter runs synchronously, async decoding work can produce an * `Exit.Failure` with a defect cause. When the cause contains both schema * issues and non-schema reasons, all reasons remain in the returned `Cause`. * * @see {@link decodeExit} for input already typed as the schema's `Encoded` type * @see {@link decodeUnknownEffect} for preserving decoding services and failures in `Effect` * @see {@link decodeUnknownResult} for returning schema issues as data * @see {@link decodeUnknownSync} for throwing on decoding failure * * @stability stable * @category decoding * @since 4.0.0 */ export declare function decodeUnknownExit>(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => Exit.Exit; /** * Creates a synchronous decoder for input already typed as the schema's `Encoded` * type, reporting failure safely as an `Exit`. * * **When to use** * * Use when you need synchronous decoding of already typed `Encoded` input into * an `Exit` whose failure contains `SchemaIssue.Issue`. * * **Details** * * The returned function produces `Exit.Success` with the decoded `Type` or * `Exit.Failure` with a `SchemaIssue.Issue`. * * **Gotchas** * * Because this adapter runs synchronously, async decoding work can produce an * `Exit.Failure` with a defect cause. When the cause contains both schema * issues and non-schema reasons, all reasons remain in the returned `Cause`. * * @see {@link decodeUnknownExit} for untyped input with the same `Exit` result shape * @see {@link decodeEffect} for preserving decoding services and failures in `Effect` * * @stability stable * @category decoding * @since 4.0.0 */ export declare const decodeExit: >(schema: S, options?: SchemaAST.ParseOptions) => (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Exit.Exit; /** * Creates a decoder for `unknown` input that reports failure safely as a * `Result`. * * **When to use** * * Use when decoding untyped boundary input and you want `SchemaIssue.Issue` * failures returned as data in a `Result`. * * **Details** * * The returned function produces `Result.succeed` with the decoded `Type` on * success or `Result.fail` with a `SchemaIssue.Issue` on decoding failure. * * **Gotchas** * * This adapter runs synchronously. Causes made entirely of schema issues become * `Result.fail`, but causes that contain defects, interruptions, or asynchronous * work at this synchronous boundary throw instead. * * @see {@link decodeResult} for input already typed as the schema's `Encoded` type * @see {@link decodeUnknownEffect} for effectful or service-requiring decoding * * @stability stable * @category decoding * @since 4.0.0 */ export declare function decodeUnknownResult>(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => Result.Result; /** * Creates a decoder for input already typed as the schema's `Encoded` type, * reporting failure safely as a `Result`. * * **When to use** * * Use when you already have input typed as the schema's `Encoded` type and want * schema decoding failures represented as `Result.fail` with `SchemaIssue.Issue`. * * **Details** * * The returned function produces `Result.succeed` with the decoded `Type` on * success or `Result.fail` with a `SchemaIssue.Issue` on decoding failure. * * **Gotchas** * * This synchronous adapter returns `Result.fail` for causes made entirely of * schema issues, but causes that contain defects, interruptions, or other * non-schema reasons throw instead. * * @see {@link decodeUnknownResult} for untyped input with the same `Result` shape * @see {@link decodeEffect} for effectful or service-requiring decoding * * @stability stable * @category decoding * @since 4.0.0 */ export declare const decodeResult: >(schema: S, options?: SchemaAST.ParseOptions) => (input: S["Encoded"], options?: SchemaAST.ParseOptions) => Result.Result; /** * Creates a synchronous decoder for `unknown` input. * * **When to use** * * Use to decode untrusted or dynamically typed input at a synchronous boundary * where invalid data should throw an `Error` whose cause is `SchemaIssue.Issue`. * * **Details** * * The returned function returns the decoded `Type` on success and throws an * `Error` with the `SchemaIssue.Issue` in its `cause` on decoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or asynchronous work at this * synchronous boundary throw an `Error` whose cause is the underlying `Cause`, * instead of being converted to a schema validation error. * * @see {@link decodeSync} for input already typed as the schema's `Encoded` type * @see {@link decodeUnknownEffect} for preserving decoding failures in `Effect` * @see {@link decodeUnknownResult} for returning schema issues as data * * @stability stable * @category decoding * @since 3.10.0 */ export declare function decodeUnknownSync>(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => S["Type"]; /** * Creates a synchronous decoder for input already typed as the schema's `Encoded` * type. * * **When to use** * * Use to decode values already typed as the schema's `Encoded` input when * decoding failure should throw an `Error` whose cause is `SchemaIssue.Issue`. * * **Details** * * The returned function returns the decoded `Type` on success and throws an * `Error` with the `SchemaIssue.Issue` in its `cause` on decoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or asynchronous work at this * synchronous boundary throw an `Error` whose cause is the underlying `Cause`, * instead of being converted to a schema validation error. * * @see {@link decodeUnknownSync} for untrusted or dynamically typed input * @see {@link decodeResult} for returning schema issues as data * @see {@link decodeEffect} for preserving decoding failures in `Effect` * * @stability stable * @category decoding * @since 3.10.0 */ export declare const decodeSync: >(schema: S, options?: SchemaAST.ParseOptions) => (input: S["Encoded"], options?: SchemaAST.ParseOptions) => S["Type"]; /** * Creates an effectful encoder for `unknown` input. * * **When to use** * * Use when you need to encode untyped boundary input in an `Effect` whose * failure channel is `SchemaIssue.Issue`, while preserving service * requirements. * * **Details** * * The returned function succeeds with the schema's `Encoded` value or fails with a * `SchemaIssue.Issue`. Encoding service requirements are preserved in the returned * `Effect`. Parse options may be provided when creating the encoder and overridden * when applying it. * * @see {@link encodeEffect} for the typed-input variant when the value is already typed as the schema's decoded `Type` * * @stability stable * @category encoding * @since 4.0.0 */ export declare function encodeUnknownEffect(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => Effect.Effect; /** * Creates an effectful encoder for input already typed as the schema's decoded * `Type`. * * **When to use** * * Use when you need to encode values already typed as the schema's decoded * `Type` in an `Effect` whose failure channel is `SchemaIssue.Issue`, while * preserving service requirements. * * **Details** * * The returned function succeeds with the schema's `Encoded` value or fails with a * `SchemaIssue.Issue`, preserving any encoding service requirements in the * returned `Effect`. * * @see {@link encodeUnknownEffect} for encoding unknown input before the value is statically typed as the schema's `Type` * * @stability stable * @category encoding * @since 4.0.0 */ export declare const encodeEffect: (schema: S, options?: SchemaAST.ParseOptions) => (input: S["Type"], options?: SchemaAST.ParseOptions) => Effect.Effect; /** * Creates a Promise-based encoder for `unknown` input. * * **When to use** * * Use when you need to encode untrusted or dynamically typed values with a * service-free schema and return a JavaScript `Promise`. * * **Details** * * The returned function resolves with the schema's `Encoded` value on success and * rejects with an `Error` whose cause is a `SchemaIssue.Issue` on encoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or other non-schema reasons reject * with an `Error` whose cause is the underlying `Cause`. * * @see {@link encodePromise} for input already typed as the schema's decoded `Type` * @see {@link encodeUnknownEffect} for schemas that require encoding services or when failures should remain in `Effect` * * @stability stable * @category encoding * @since 3.10.0 */ export declare const encodeUnknownPromise: >(schema: S, options?: SchemaAST.ParseOptions) => (input: unknown, options?: SchemaAST.ParseOptions) => Promise; /** * Creates a Promise-based encoder for input already typed as the schema's decoded * `Type`. * * **When to use** * * Use when you already have values typed as the schema's decoded `Type` and * need encoding to return a JavaScript `Promise`. * * **Details** * * The returned function resolves with the schema's `Encoded` value on success and * rejects with an `Error` whose cause is a `SchemaIssue.Issue` on encoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or other non-schema reasons reject * with an `Error` whose cause is the underlying `Cause`. * * @see {@link encodeUnknownPromise} for encoding untyped input * @see {@link encodeEffect} for effectful encoding or schemas with encoding service requirements * * @stability stable * @category encoding * @since 3.10.0 */ export declare const encodePromise: >(schema: S, options?: SchemaAST.ParseOptions) => (input: S["Type"], options?: SchemaAST.ParseOptions) => Promise; /** * Creates a synchronous encoder for `unknown` input that reports failure safely * as an `Exit`. * * **When to use** * * Use when you need synchronous encoding of unknown input into an `Exit` whose * failure contains `SchemaIssue.Issue`. * * **Details** * * The returned function produces `Exit.Success` with the schema's `Encoded` value * or `Exit.Failure` with a `SchemaIssue.Issue`. * * **Gotchas** * * Because this adapter runs synchronously, async encoding work can produce an * `Exit.Failure` with a defect cause. When the cause contains both schema * issues and non-schema reasons, all reasons remain in the returned `Cause`. * * @see {@link encodeExit} for input already typed as the schema's decoded `Type` * @see {@link encodeUnknownEffect} for effectful encoding that preserves service requirements * * @stability stable * @category encoding * @since 4.0.0 */ export declare function encodeUnknownExit>(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => Exit.Exit; /** * Creates a synchronous encoder for input already typed as the schema's decoded * `Type`, reporting failure safely as an `Exit`. * * **When to use** * * Use when you need synchronous encoding of already typed schema values into * an `Exit` whose failure contains `SchemaIssue.Issue`. * * **Details** * * The returned function produces `Exit.Success` with the schema's `Encoded` value * or `Exit.Failure` with a `SchemaIssue.Issue`. * * **Gotchas** * * Because this adapter runs synchronously, async encoding work can produce an * `Exit.Failure` with a defect cause. When the cause contains both schema * issues and non-schema reasons, all reasons remain in the returned `Cause`. * * @see {@link encodeUnknownExit} for unknown input with the same `Exit` result shape * @see {@link encodeEffect} for effectful encoding that preserves service requirements * * @stability stable * @category encoding * @since 4.0.0 */ export declare const encodeExit: >(schema: S, options?: SchemaAST.ParseOptions) => (input: S["Type"], options?: SchemaAST.ParseOptions) => Exit.Exit; /** * Creates an encoder for `unknown` input that reports failure safely as a * `Result`. * * **When to use** * * Use when encoding values from an unknown or dynamically typed boundary * synchronously, and you want `SchemaIssue.Issue` failures returned as `Result` * data. * * **Details** * * The returned function produces `Result.succeed` with the schema's `Encoded` * value on success or `Result.fail` with a `SchemaIssue.Issue` on encoding * failure. * * **Gotchas** * * This adapter runs synchronously. Causes made entirely of schema issues become * `Result.fail`, but causes that contain defects, interruptions, or asynchronous * work at this synchronous boundary throw instead. * * @see {@link encodeResult} for input already typed as the schema's decoded `Type` * @see {@link encodeUnknownEffect} for effectful encoding, including schemas with encoding service requirements * * @stability stable * @category encoding * @since 4.0.0 */ export declare function encodeUnknownResult>(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => Result.Result; /** * Creates an encoder for input already typed as the schema's decoded `Type`, * reporting failure safely as a `Result`. * * **When to use** * * Use when you already have input typed as the schema's decoded `Type` and want * encoding failures returned as `Result.fail` with `SchemaIssue.Issue`. * * **Details** * * The returned function produces `Result.succeed` with the schema's `Encoded` * value on success or `Result.fail` with a `SchemaIssue.Issue` on encoding * failure. * * **Gotchas** * * This synchronous adapter returns `Result.fail` for causes made entirely of * schema issues, but causes that contain defects, interruptions, or other * non-schema reasons throw instead. * * @see {@link encodeUnknownResult} for the same `Result` shape when the input is not already typed * * @stability stable * @category encoding * @since 4.0.0 */ export declare const encodeResult: >(schema: S, options?: SchemaAST.ParseOptions) => (input: S["Type"], options?: SchemaAST.ParseOptions) => Result.Result; /** * Creates a synchronous encoder for `unknown` input. * * **When to use** * * Use when you need to encode values from untyped input in synchronous code and * want encoding failures to throw an `Error` whose cause is `SchemaIssue.Issue`. * * **Details** * * The returned function returns the schema's `Encoded` value on success and throws * an `Error` with the `SchemaIssue.Issue` in its `cause` on encoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or asynchronous work at this * synchronous boundary throw an `Error` whose cause is the underlying `Cause`, * instead of being converted to a schema validation error. * * @see {@link encodeSync} for input already typed as the schema's decoded `Type` * @see {@link encodeUnknownEffect} for effectful encoding that preserves service requirements * * @stability stable * @category encoding * @since 3.10.0 */ export declare function encodeUnknownSync>(schema: S, options?: SchemaAST.ParseOptions): (input: unknown, options?: SchemaAST.ParseOptions) => S["Encoded"]; /** * Creates a synchronous encoder for input already typed as the schema's decoded * `Type`. * * **When to use** * * Use to encode already typed schema values synchronously when encoding failure * should throw an `Error` whose cause is `SchemaIssue.Issue`. * * **Details** * * The returned function returns the schema's `Encoded` value on success and throws * an `Error` with the `SchemaIssue.Issue` in its `cause` on encoding failure. * Schema validation failures use the generic message `"Schema validation failed"`. * Format the `cause` explicitly with `SchemaIssue.makeFormatterDefault()` when * human-readable details are needed. * * **Gotchas** * * Causes that contain defects, interruptions, or asynchronous work at this * synchronous boundary throw an `Error` whose cause is the underlying `Cause`, * instead of being converted to a schema validation error. * * @see {@link encodeUnknownSync} for unknown input with the same throwing boundary * @see {@link encodeResult} for returning schema issues as data * @see {@link encodeEffect} for effectful encoding that preserves service requirements * * @stability stable * @category encoding * @since 3.10.0 */ export declare const encodeSync: >(schema: S, options?: SchemaAST.ParseOptions) => (input: S["Type"], options?: SchemaAST.ParseOptions) => S["Encoded"]; //# sourceMappingURL=SchemaParser.d.ts.map