import { Schema } from "@fncts/schema/Schema/definition";
import { Parser } from "@fncts/schema/Parser/definition";
import { Maybe } from "@fncts/base/data/Maybe/definition";
import { ParseResult } from "@fncts/schema/ParseResult";
import { AST } from "@fncts/schema/AST";
import type { ParseOptions } from "../AST.js";
/**
* @tsplus getter fncts.schema.Schema decode
* @tsplus getter fncts.schema.Parser decode
* @tsplus location "@fncts/schema/Parser/api"
*/
export declare function decode(schema: Schema): Parser;
/**
* @tsplus getter fncts.schema.Schema decodeMaybe
* @tsplus getter fncts.schema.Parser decodeMaybe
* @tsplus location "@fncts/schema/Parser/api"
*/
export declare function decodeMaybe(schema: Schema): (input: A, options?: ParseOptions) => Maybe;
/**
* @tsplus getter fncts.schema.Schema encode
* @tsplus getter fncts.schema.Parser encode
* @tsplus location "@fncts/schema/Parser/api"
*/
export declare function encode(schema: Schema): (input: A, options?: ParseOptions) => ParseResult;
/**
* @tsplus getter fncts.schema.Schema encodeMaybe
* @tsplus getter fncts.schema.Parser encodeMaybe
* @tsplus location "@fncts/schema/Parser/api"
*/
export declare function encodeMaybe(schema: Schema): (input: A, options?: ParseOptions) => Maybe;
/**
* @tsplus getter fncts.schema.Schema asserts
* @tsplus getter fncts.schema.Parser asserts
* @tsplus location "@fncts/schema/Parser/api"
*/
export declare function asserts(schema: Schema): (input: unknown, options?: ParseOptions) => asserts input is A;