import { Maybe } from "@tsplus/stdlib/data/Maybe/definition"; /** * @tsplus type Match/Ops */ export interface MatchOps { $: MatchAspects; } export declare const Match: MatchOps; /** * @tsplus type Match/Aspects */ export interface MatchAspects { } /** * @tsplus static Match/Aspects pattern * @tsplus location "@tsplus/stdlib/data/Match" */ export declare const pattern: (n: N) => { , __: Extract) => any; }>(_: K): (m: X) => ReturnType; , __: Extract) => any; }>, H>(_: K & { [k in X[N]]?: (_: Extract, __: Extract) => any; }, __: (_: Exclude, __: Exclude) => H): (m: X) => { [k in keyof K]: ReturnType>; }[keyof K] | H; }; /** * @tsplus static Match/Aspects tag * @tsplus location "@tsplus/stdlib/data/Match" */ export declare const matchTag: { , __: Extract) => any; }>(_: K): (m: X) => ReturnType; , __: Extract) => any; }>, H>(_: K_1 & { [k_2 in X_1["_tag"]]?: ((_: Extract, __: Extract) => any) | undefined; }, __: (_: Exclude, __: Exclude) => H): (m: X_1) => H | { [k_3 in keyof K_1]: ReturnType>; }[keyof K_1]; }; /** * @tsplus static Match/Ops pattern * @tsplus location "@tsplus/stdlib/data/Match" */ export declare const pattern_: (n: N) => { , __: Extract) => any; }>(m: X, _: K): ReturnType; , __: Extract) => any; }>, H>(m: X, _: K & { [k in X[N]]?: (_: Extract, __: Extract) => any; }, __: (_: Exclude, __: Exclude) => H): { [k in keyof K]: ReturnType>; }[keyof K] | H; }; /** * @tsplus static Match/Ops tag * @tsplus location "@tsplus/stdlib/data/Match" */ export declare const matchTag_: { , __: Extract) => any; }>(m: X, _: K): ReturnType; , __: Extract) => any; }>, H>(m: X_1, _: K_1 & { [k_2 in X_1["_tag"]]?: ((_: Extract, __: Extract) => any) | undefined; }, __: (_: Exclude, __: Exclude) => H): H | { [k_3 in keyof K_1]: ReturnType>; }[keyof K_1]; }; /** * @tsplus static Match/Aspects patternFor * @tsplus location "@tsplus/stdlib/data/Match" */ export declare const patternFor: (n: N) => () => { , __: Extract) => any; }>(_: K): (m: X) => ReturnType; , __: Extract) => any; }>, H>(_: K & { [k in X[N]]?: (_: Extract, __: Extract) => any; }, __: (_: Exclude, __: Exclude) => H): (m: X) => { [k in keyof K]: ReturnType>; }[keyof K] | H; }; /** * @tsplus static Match/Ops tagFor * @tsplus location "@tsplus/stdlib/data/Match" */ export declare const matchTagFor: () => { , __: Extract) => any; }>(_: K): (m: X) => ReturnType; , __: Extract) => any; }>, H>(_: K_1 & { [k_2 in X["_tag"]]?: ((_: Extract, __: Extract) => any) | undefined; }, __: (_: Exclude, __: Exclude) => H): (m: X) => H | { [k_3 in keyof K_1]: ReturnType>; }[keyof K_1]; }; /** * @tsplus static Match/Ops isAdtElement * @tsplus location "@tsplus/stdlib/data/Match" */ export declare function isAdtElement_(tag: K, adt: A): adt is Extract; /** * @tsplus static Match/Aspects isAdtElement */ export declare const isAdtElement: (adt: A) => (tag: K) => boolean; /** * @tsplus static Match/Ops isGenericAdtElement * @tsplus location "@tsplus/stdlib/data/Match" */ export declare function isGenericAdtElement(_t: T): (tag: K) => (adt: A) => adt is Extract; /** * @tsplus static Match/Ops onAdtElement * @tsplus location "@tsplus/stdlib/data/Match" */ export declare function onAdtElement(tag: K, f: (_: Extract) => B): (adt: A) => Maybe; /** * @tsplus static Match/Ops onGenericAdtElement * @tsplus location "@tsplus/stdlib/data/Match" */ export declare function onGenericAdtElement(_t: T): (tag: K, f: (_: Extract) => B) => (adt: A) => import("./Maybe").Maybe; //# sourceMappingURL=Match.d.ts.map