import type { ParseResult, ParseOptions, ParseContext, SchemaNode, AnyValiDocument, ExportMode, CoercionConfig, MetadataOptions, DescribeOptions } from "../types.js"; /** * Maximum validation recursion depth. Bounds recursion through recursive * `$ref` schemas (and deeply nested data) so a malicious payload cannot * exhaust the call stack and crash the process (DoS). Far above any * legitimate schema nesting. */ export declare const MAX_DEPTH = 512; /** Sentinel for "value not present" */ export declare const ABSENT: unique symbol; export type Absent = typeof ABSENT; export declare abstract class BaseSchema { /** Type-level brand for Infer. Never assigned at runtime. */ readonly _output: TOutput; /** @internal */ _defaultValue: TOutput | Absent; /** @internal */ _coercionConfig: CoercionConfig | undefined; /** @internal */ _isPortable: boolean; /** @internal */ _metadata: Record | undefined; /** @internal */ _importedDefinitions: Record; /** @internal */ _importedExtensions: AnyValiDocument["extensions"]; parse(input: unknown, options?: ParseOptions): TOutput; safeParse(input: unknown, options?: ParseOptions): ParseResult; /** @internal */ _safeParseWithContext(input: unknown, ctx: ParseContext): ParseResult; /** Internal: run the 5-step pipeline */ _runPipeline(input: unknown, ctx: ParseContext): unknown; private _runPipelineInner; /** Override in subclasses to provide the coercion target type name */ _getCoercionTarget(): string; abstract _validate(input: unknown, ctx: ParseContext): unknown; abstract _toNode(): SchemaNode; /** @internal Direct schema children; refs retain their document context separately. */ _children(): BaseSchema[]; default(value: TOutput): this; coerce(options?: CoercionConfig): this; describe(description: string, opts?: DescribeOptions): this; metadata(meta: Record, opts?: MetadataOptions): this; export(mode?: ExportMode): AnyValiDocument; private _validateDescribeOpts; protected _clone(): this; protected _addDefault(node: SchemaNode): SchemaNode; } //# sourceMappingURL=base.d.ts.map