import type { UiServiceDeps, IssueInfo, IssuesListParams } from '../types.js';
/** Stable id for an entry, hashed from its raw `- **…**` title line (no explicit id in the md). */
export declare function issueLineId(titleLine: string): string;
/**
* Parse a project ISSUES.md into IssueInfo entries. Each column-0 `- **
**` bullet starts an
* entry; everything after the bold title in trailing parens is scanned for the FIRST `YYYY-MM-DD`
* (freeform variants like `(2026-07-04, 更新 07-10)` are real) → `date`, honest null when absent.
* The entry's `body` = the raw following lines (freeform sub-bullets) until the next entry /
* heading / `---` rule, trimmed of trailing blank lines. H1 / preamble / rules are skipped.
*/
export declare function parseIssues(md: string): IssueInfo[];
/** Resolve the project's ISSUES.md path, or throw not-found for an unknown project. */
export declare function resolveIssuesPath(deps: UiServiceDeps, projectId: string): string;
export declare function handleIssuesList(deps: UiServiceDeps, params: IssuesListParams): Promise;