import type { Effect } from "effect/Effect"; import * as S from "effect/Schema"; import * as AST from "effect/SchemaAST"; import type { Sink } from "effect/Sink"; import type { Stream } from "effect/Stream"; export * from "effect/Schema"; export declare const isNullishSchema: (schema: S.Schema) => boolean; export declare const isNullSchema: (schema: S.Schema) => boolean; export declare const isUndefinedSchema: (schema: S.Schema) => boolean; export declare const isBooleanSchema: (schema: S.Schema) => boolean; export declare const isStringSchema: (schema: S.Schema) => boolean; export declare const isNumberSchema: (schema: S.Schema) => boolean; export declare const isRecordLikeSchema: (schema: S.Schema) => boolean; export declare const isMapSchema: (schema: S.Schema) => boolean; export declare const isClassSchema: (schema: S.Schema) => boolean; export declare const isStructSchema: (schema: S.Schema) => boolean; export declare const isRecordSchema: (schema: S.Schema) => boolean; export declare const isListSchema: (schema: S.Schema) => boolean; export declare const isSetSchema: (schema: S.Schema) => boolean; export declare const getSetValueAST: (schema: S.Schema) => AST.AST | undefined; /** A Schema representing a Schema */ export type Field = S.Top; export declare const Field: S.suspend>; type FunctionType = (...args: any[]) => any; export type Function = S.Schema; export declare const Function: () => Function; export type CreatedAt = Date; export declare const CreatedAt: S.Date; export type UpdatedAt = Date; export declare const UpdatedAt: S.Date; export type AnyClassSchema = S.Class; export type AnyClass = new (...args: any[]) => any; export type AnyErrorSchema = S.Class; export type SchemaWithTemplate, References extends any[] = any[]> = Schema & { template: TemplateStringsArray; references: References; }; export type SchemaExt = FunctionSchema | EffectSchema | StreamSchema | SinkSchema; export interface SchemaExtBase extends S.Schema { (template: TemplateStringsArray, ...references: References): SchemaWithTemplate; } export interface FunctionSchema extends SchemaExtBase<(...args: Input extends undefined ? [] : [input: S.Schema.Type>]) => S.Schema.Type> { input: Input; output: Output; } export interface EffectSchema extends SchemaExtBase, S.Schema.Type, S.Schema.Type>> { A: A; Err: Err; Req: Req; } export interface StreamSchema extends SchemaExtBase, S.Schema.Type, S.Schema.Type>> { A: A; Err: Err; Req: Req; } export interface SinkSchema extends SchemaExtBase, S.Schema.Type, S.Schema.Type, S.Schema.Type, S.Schema.Type>> { A: A; In: In; L: L; Err: Err; Req: Req; } export declare const makeExtSchema: (schema: Schema) => SchemaExt; export interface func extends S.Schema S.Schema.Type : Input extends S.Top[] ? (...args: TypeArray) => S.Schema.Type : (input: S.Schema.Type>) => S.Schema.Type> { } type TypeArray = T extends [ infer Head, ...infer Tail extends S.Top[] ] ? Head extends S.Top ? [S.Schema.Type, ...TypeArray] : never : []; export declare const func: { >(output: Output): func & { (template: TemplateStringsArray, ...references: R): SchemaWithTemplate, R>; }; , Output extends S.Schema>(input: Input, output: Output): func & { (template: TemplateStringsArray, ...references: R): SchemaWithTemplate, R>; }; [], Output extends S.Schema>(args: Args, output: Output): func & { (template: TemplateStringsArray, ...references: R): SchemaWithTemplate, R>; }; }; export interface effect extends S.Schema, S.Schema.Type, S.Schema.Type>> { } export declare const effect: , Err extends S.Schema | S.Never = S.Never, Req extends S.Schema | S.Any = S.Any>(a: A, err?: Err, req?: Req) => effect; export declare const stream: , Err extends S.Schema | S.Never = S.Never, Req extends S.Schema | S.Never = S.Never>(a: A, err?: Err, req?: Req) => S.Any; export declare const sink: , In extends S.Schema, L extends S.Schema, Err extends S.Schema | S.Never = S.Never, Req extends S.Schema | S.Never = S.Never>(a: A, _in?: In, l?: L, err?: Err, req?: Req) => S.Any; //# sourceMappingURL=Schema.d.ts.map