import type { Base, Infer, Kind, Param, URIS } from '../HKT'; export declare const pattern_: (n: N) => { ) => any; }>(m: X, _: K): ReturnType; ) => any; }, H>(m: X, _: K, __: (_: Exclude) => H): { [k in keyof K]: ReturnType>; }[keyof K] | H; }; export declare const pattern: (n: N) => { ) => any; }>(_: K): (m: X) => ReturnType; ) => any; }, H>(_: K, __: (_: Exclude) => H): (m: X) => { [k in keyof K]: ReturnType>; }[keyof K] | H; }; export declare const matchTag_: { ) => any; }>(m: X, _: K): ReturnType; ) => any) | undefined; }, H>(m: X_1, _: K_2, __: (_: Exclude) => H): H | { [k_3 in keyof K_2]: ReturnType>; }[keyof K_2]; }; export declare const matchTag: { ) => any; }>(_: K): (m: X) => ReturnType; ) => any) | undefined; }, H>(_: K_2, __: (_: Exclude) => H): (m: X_2) => H | { [k_3 in keyof K_2]: ReturnType>; }[keyof K_2]; }; declare type InferMatcherParam any>> = Infer; }[keyof K]>; declare type InferMatcherParamWithDefault = Infer any ? ReturnType : never; }[keyof K] | Ret>; export declare function matchers(_: Base): { match: (tag: N) => { ) => Kind; }>(matcher: K): (_: X) => Kind; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>, Infer; }[keyof K]>>; ) => Kind; }>, Ret extends Kind>(matcher: K_1, def: (_: Exclude) => Ret): (_: X_1) => Kind any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>, Infer any ? ReturnType : never; }[keyof K_1]>>; }; matchTag: { ) => Kind; }>(matcher: K_2): (_: X_2) => Kind; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>, Infer; }[keyof K_2]>>; ) => Kind; }>, Ret_1 extends Kind>(matcher: K_3, def: (_: Exclude) => Ret_1): (_: X_3) => Kind any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>, Infer any ? ReturnType : never; }[keyof K_3]>>; }; matchIn: (tag: N_1) => () => { ) => Kind; }>(matcher: K_4): (_: X_4) => Kind; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>, Infer; }[keyof K_4]>>; ) => Kind; }>, Ret_2 extends Kind>(matcher: K_5, def: (_: Exclude) => Ret_2): (_: X_4) => Kind any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>, Infer any ? ReturnType : never; }[keyof K_5]>>; }; matchTagIn: () => { ) => Kind; }>(matcher: K_6): (_: X_5) => Kind; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>, Infer; }[keyof K_6]>>; ) => Kind; }>, Ret_3 extends Kind>(matcher: K_7, def: (_: Exclude) => Ret_3): (_: X_5) => Kind any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>, Infer any ? ReturnType : never; }[keyof K_7]>>; }; }; export {}; //# sourceMappingURL=matchers.d.ts.map