/** * Pattern-based query parser * @module core/query/parser */ import type { ParsedQuery } from './types.js'; /** * Parse a query string for advanced syntax patterns * * Extracts: * - Date ranges (1920-1930, 1920s, 19th century, named eras) * - Field:value pairs (creator:Lawson, subject:"gold rush") * - Quoted phrases ("Melbourne railway") * - Exclusions (-advertisement) * - Wildcards (colonial*) * * @param query - The search query string * @returns Parsed query with extracted components * * @example * ```typescript * const parsed = parseQuery('Melbourne railway 1920-1930 creator:Lawson -advertisement'); * // { * // original: 'Melbourne railway 1920-1930 creator:Lawson -advertisement', * // cleanedQuery: 'Melbourne railway', * // dateRange: { from: '1920', to: '1930' }, * // fields: { creator: 'Lawson' }, * // phrases: [], * // exclusions: ['advertisement'], * // hasWildcard: false * // } * ``` */ export declare function parseQuery(query: string): ParsedQuery; /** * Check if a query is simple (no advanced syntax) * * @param query - The search query string * @returns true if query has no advanced syntax */ export declare function isSimpleQuery(query: string): boolean; /** * Validate field names against known fields * * @param fields - Parsed field:value pairs * @returns Array of unknown field names */ export declare function getUnknownFields(fields: Record): string[]; /** * Format a parsed query for display/debugging * * @param parsed - Parsed query result * @returns Human-readable summary */ export declare function formatParsedQuery(parsed: ParsedQuery): string; //# sourceMappingURL=parser.d.ts.map