export type { ConditionalAPI, ConditionalRecord, InferObjectShape, InferValidatorValue, InferredArrayValidator, InferredEnumValidator, ObjectWithContextValidator, ValidatorShape, ValidatorWithConditionals, } from './schema'; // Type guard utilities export declare function isString(value: unknown): value is string; export declare function isNumber(value: unknown): value is number; export declare function isBoolean(value: unknown): value is boolean; export declare function isObject(value: unknown): value is Record; export declare function isArray(value: unknown): value is unknown[]; export declare function isFunction(value: unknown): value is Function; export declare function isUndefined(value: unknown): value is undefined; export declare function isNull(value: unknown): value is null; export declare function isNullOrUndefined(value: unknown): value is null | undefined; // Order matters: bind `schema` first so any consumer that imports it // transitively — validator.ts → schema, plus any user model that lands // inside the auto-imports barrel — sees the Proxy rather than an empty // namespace placeholder. With this export below the others, ESM consumers // arriving mid-evaluation through the auto-imports graph would race the // `export *` re-exports from `@stacksjs/ts-validation` (which also exports // a `schema` symbol) and see whichever binding was registered first. export { schema } from './schema'; // Conditional validation surface — `.when()` / `.sometimes()` mixins + // context-aware object validator (stacksjs/stacks#1890). export { applyConditionals, objectWithContext, shouldApplyConditional, withConditionals, } from './schema'; // Re-export everything from @stacksjs/ts-validation. The explicit `schema` // export above shadows ts-validation's own `schema` for `import { schema } // from '@stacksjs/validation'` consumers — which is what we want, since the // Proxy keeps `schema.()` reactive across module-graph races. export * from '@stacksjs/ts-validation'; // Export local validation helpers export * from './reporter'; export * from './validator';