import type { ParsedQuery } from "./types.js"; /** * The query grammar: plain words and explicit tokens, both. * * `blocked on jinn-dev` infers the same facets `is:blocked @jinn-dev` commits * explicitly, and when the two disagree the explicit token wins. Inference only * ever draws on the live vocabulary, so it can narrow a search but never invent * a facet that does not exist. * * Pure by construction — no db, no filesystem, no clock. `vocabulary.ts` owns * the impure half, which is what makes every rule here unit-testable. */ export interface SearchVocabulary { statuses: readonly string[]; assignees: readonly string[]; departments: readonly string[]; labels: readonly string[]; } export type ParseSearchQueryResult = { ok: true; value: ParsedQuery; } | { ok: false; error: string; }; export declare function parseSearchQuery(input: string, vocabulary: SearchVocabulary, options: { literal?: boolean; }): ParseSearchQueryResult; //# sourceMappingURL=query-grammar.d.ts.map