/// type Predicate = (v: TInput) => boolean; type Handler = (v: TInput) => TOutput; interface Match { when: (predicate: Predicate, handler: Handler) => this; run: () => Output; otherwise: (handler: Handler) => this; } declare function match(value: TInput): Match; export { type Handler, type Match, type Predicate, match };