import { type Structure, type WriterFunction } from 'ts-morph'; type FlatType = T extends Array ? R : T; type NeverIfIsNeverArray = T extends never[] ? never : T; type ExtractPrimitive = Extract>, boolean | number | string>; /** * Convert an object to a searchable object * * @example * // Type * { * named: string; * flag: boolean; * keys: string[] * objects: {}[] * } * * // Query * * { * named: string | string[]; * flag: boolean | boolean[]; * keys: string | string[]; * objects: never; * } * */ export type Query = Partial<{ [key in keyof T]: ExtractPrimitive | NeverIfIsNeverArray>>; }>; export declare function matchQuery(value: Record | T, query?: Query & Record): boolean; export {};