import { AnyObject, AnyValue } from './types/custom_type.types.cjs';

declare type DeepWildcardQueryType<T> = (T extends AnyObject ? {
    [key in keyof T]?: DeepWildcardQueryType<T[key]>;
} : 0 | 1 | true | false);
declare type SearchQuery = Array<{
    $regex?: string;
    $options?: string;
} | AnyValue>;
declare const objectWildcardSearch: <T, E extends DeepWildcardQueryType<T> = DeepWildcardQueryType<T>>(search: AnyValue, objectTarget: E, options?: {}) => {
    $or: SearchQuery;
} | undefined;
declare const wildcardSearch: <T, E extends DeepWildcardQueryType<T> = DeepWildcardQueryType<T>>(search: AnyValue, objectTarget: E, options?: {}) => {
    $or: SearchQuery;
} | undefined;

export { DeepWildcardQueryType, SearchQuery, objectWildcardSearch, wildcardSearch };
