import { Fn, PartialApply, unset, _ } from "../core/Core"; import * as Impl from "./impl/match"; /** * Match creates a pattern matching expression. * Pattern matching let you execute different * branches of code based on the structure * of the input type exdestructure the input type, and execute * * @param input - the input to pattern match on * @param withClauses - list of with clauses representing different branches if code * * @example * ```ts * type Test = Match>, * With>, * With> * ]> * ``` */ export type Match[] | unset | _ = unset> = PartialApply; interface MatchFn extends Fn { return: Impl.Match; } export declare namespace Match { type With = Impl.With; } export {};