import { Results } from '../types/Results'; import { Constructor } from '../types/Constructor'; import { Get, Predicate } from '../types/Get'; import { ErrorOrigin } from '../types/ErrorOrigin'; export declare class When { readonly subject: W; readonly valid: boolean; private results?; constructor(subject: W, valid?: boolean, results?: Results | undefined); get not(): When; get and(): When; get isDefined(): When; get isEmpty(): When; get isTrue(): When; get isValid(): When; isInstance: (c: Constructor) => When; with: (pred: Predicate) => When; contains: (property: (w: W) => unknown) => When; in: (...items: W[]) => When; is: (item: W) => When; reject: (error?: Get) => Promise>; recover: (f: (item: W) => W | Promise) => Promise; protected clone: (result?: boolean) => When; } export declare const when: (subject: T) => When;