import { SchemaUtils } from "./builders"; import { MaybePromise } from "./utils/MaybePromise"; export declare type Schema = BaseSchema & SchemaUtils; export declare type inferRaw = S extends Schema ? Raw : never; export declare type inferParsed = S extends Schema ? Parsed : never; export interface BaseSchema { parse: (raw: unknown, opts?: SchemaOptions) => MaybePromise>; json: (parsed: unknown, opts?: SchemaOptions) => MaybePromise>; getType: () => SchemaType | Promise; } export declare const SchemaType: { readonly DATE: "date"; readonly ENUM: "enum"; readonly LIST: "list"; readonly STRING_LITERAL: "stringLiteral"; readonly OBJECT: "object"; readonly ANY: "any"; readonly BOOLEAN: "boolean"; readonly NUMBER: "number"; readonly STRING: "string"; readonly UNKNOWN: "unknown"; readonly RECORD: "record"; readonly SET: "set"; readonly UNION: "union"; readonly OPTIONAL: "optional"; }; export declare type SchemaType = typeof SchemaType[keyof typeof SchemaType]; export declare type MaybeValid = Valid | Invalid; export interface Valid { ok: true; value: T; } export interface Invalid { ok: false; errors: ValidationError[]; } export interface ValidationError { path: string[]; message: string; } export interface SchemaOptions { /** * @default false */ allowUnknownKeys?: boolean; }