export type MatchArm<TValue = unknown, TResult = unknown> = (value: TValue) => TResult;
// #[effects(add: [])]
export declare function where<TValue, TResult>(arm: (value: TValue) => TResult, predicate: (value: TValue) => unknown): (value: TValue) => TResult;
// #[effects(add: [fails.throws], unknown: [direct])]
export declare function Match<TArm extends MatchArm<any, any>>(_value: unknown, _arms: readonly [
    TArm,
    ...TArm[]
]): ReturnType<TArm>;
