import type { Simplify } from 'type-fest'; export declare const _ = "*"; export type SomeData = SomeDataObject | SomeDataScalar; type SomeDataObject = object; type SomeDataScalar = number | string | boolean | null; export type Pattern = Or, DiscriminantProperty>>; export type PatternForValue = Data extends SomeDataScalar ? Data : PatternForObject>; export type PatternForObject = { [K in Exclude]?: Simplify ? Or[]> : Data[K] extends SomeDataObject ? Or> : Or>; } & (null extends DiscriminantProperty ? {} : { [K in Exclude]: Data[K]; }); type Or = T | T[]; export declare const match: | undefined>(data: D, pattern: P) => boolean; export {}; //# sourceMappingURL=Pattern.d.ts.map