/** * Search Engine * * Search and filter Jira tickets with JQL builder and local search. */ import type { JiraIssue } from "../types"; /** * Search query */ export interface SearchQuery { /** * Text search (searches in summary, description) */ text?: string; /** * Filter by status */ status?: string | string[]; /** * Filter by assignee */ assignee?: string | string[]; /** * Filter by labels */ labels?: string | string[]; /** * Filter by project */ project?: string; /** * Custom JQL query */ jql?: string; /** * Search in progress files */ searchProgressFiles?: boolean; /** * Maximum results */ maxResults?: number; } /** * Search result */ export interface SearchResult { tickets: JiraIssue[]; progressMatches: Array<{ filePath: string; ticketKey: string; matches: string[]; }>; total: number; query: SearchQuery; } /** * Build JQL query from search query */ export declare function buildJQL(query: SearchQuery, projectKey: string): string; /** * Search tickets */ export declare function searchTickets(query: SearchQuery, projectKey: string, baseDir?: string): Promise; /** * Filter tickets by criteria */ export declare function filterTickets(tickets: JiraIssue[], criteria: { status?: string | string[]; assignee?: string | string[]; labels?: string | string[]; text?: string; }): JiraIssue[]; //# sourceMappingURL=search-engine.d.ts.map