import { ClauseInput, DateRangeMatcherOptions, FuzzyMatcherOptions, StrictMatcherOptions } from '.'; export declare function not(clause: ClauseInput): ClauseInput; export declare function and(...clauses: ClauseInput[]): ClauseInput; export declare function or(...clauses: ClauseInput[]): ClauseInput; export declare function field(fieldId: string): { fuzzyMatches: (options?: FuzzyMatcherOptions) => { fieldId: string; type: "fuzzy"; options: { fuzziness?: string | number | undefined; boost?: number | undefined; matchAgainst?: string | undefined; } | undefined; }; strictMatches: (options?: StrictMatcherOptions) => { fieldId: string; type: "strict"; options: { boost?: number | undefined; value?: string | undefined; matchAgainst?: string | undefined; } | undefined; }; /** * Creates a date range matcher that finds records where date field fall within a specified range. * * By default, matches against the field specified in `field()` (e.g., 'mother.dob'). * When `matchAgainst` is provided, it overwrites the default field and searches against that field with OR logic . * * @param options - Configuration for the date range matching * @param options.days - Number of days before and after the target date to search (creates a ±days range) * @param options.pivot - Optional. Distance in days where relevance scoring drops by 50%. Defaults to ⌊(days * 2) / 3⌋ * @param options.boost - Optional. Scoring boost multiplier for matching results. Defaults to 1 * @param options.matchAgainst - Optional. Additional field to match against. When provided, * the query matches if the field fall within the date range. The default field is always excluded in the search in that case. * * @returns A clause that matches records where at least one of the specified date field is within the range * * @example * // Matches only against mother.dob (±365 days) * field('mother.dob').dateRangeMatches({ days: 365 }) * * @example * // Matches against mother.age OR spouse.dob, not mother.dob * field('mother.dob').dateRangeMatches({ * days: 365, * matchAgainst: $field('mother.age') * }) * * @example * // With custom pivot and boost * field('mother.dob').dateRangeMatches({ * days: 730, * pivot: 365, * boost: 2 * }) */ dateRangeMatches: (options: DateRangeMatcherOptions) => { fieldId: string; type: "dateRange"; options: { days: number; pivot?: number | undefined; boost?: number | undefined; matchAgainst?: string | undefined; }; }; }; //# sourceMappingURL=deduplication.d.ts.map