import { type MapOrigin, type MapOriginValue, type MapResult } from './map$.js'; import type { PipeStep } from './pipe$.js'; import type { AssertionFn, PredicateFn } from './types/utils.js'; /** * Uses given assertion to validate emitted values. * * @since 1.0.0 */ export declare function validate$>(assert: AssertionFn, R>): PipeStep>; /** * Uses given predicate to validate emitted values. * Use `onMiss` to customize default error, when predicated returns false. * * @since 1.0.0 */ export declare function validate$>(predicate: PredicateFn, R>, opts?: ValidatePredicateOpts>): PipeStep>; export interface ValidatePredicateOpts { /** * Called when predicate returns false. Should throw a meaningful error. */ readonly onMiss?: (data: D) => never; } /** * Error thrown by validate$ on predicate miss. */ export declare class ValidateError extends Error { readonly data: D; constructor(data: D); }