import { HKT } from "@fncts/typelevel/HKT"; import { AST } from "@fncts/schema/AST"; export declare const SchemaVariance: unique symbol; export type SchemaVariance = typeof SchemaVariance; export declare const SchemaTypeId: unique symbol; export type SchemaTypeId = typeof SchemaTypeId; export declare const OptionalSchemaSymbol: unique symbol; export type OptionalSchemaSymbol = typeof OptionalSchemaSymbol; export interface SchemaF extends HKT { readonly type: Schema; } /** * @tsplus type fncts.schema.Schema * @tsplus companion fncts.schema.SchemaOps */ export declare class Schema { readonly ast: AST; readonly [SchemaTypeId]: SchemaTypeId; [SchemaVariance]: { _A: (_: A) => A; }; constructor(ast: AST); } export interface OptionalSchema extends Schema { [OptionalSchemaSymbol]: OptionalSchemaSymbol; } export declare namespace Schema { type Infer> = Parameters[0]; } /** * @tsplus static fncts.schema.SchemaOps isSchema * @tsplus location "@fncts/schema/Schema/definition" */ export declare function isSchema(u: unknown): u is Schema;