/**
 * Issue list view transforms.
 *
 * Pure functions that turn IssueInfo[] into grouped/sorted rows for the
 * `trellis issue list` command. No I/O, no color — rendering is the caller's
 * job. The TUI (OpenTUI) and web clients are separate surfaces that speak
 * their own projection engines; this module owns only the plain-text/JSON CLI
 * views.
 */
import type { IssueInfo } from '../vcs/issue.js';
export type IssueView = 'list' | 'table' | 'kanban';
export type IssueSort = 'priority' | 'created' | 'started' | 'progress' | 'blocked';
export type IssueGroupBy = 'status' | 'priority' | 'label' | 'assignee';
export declare const STATUS_ORDER: readonly ["backlog", "queue", "in_progress", "paused", "closed"];
export declare const PRIORITY_ORDER: readonly ["critical", "high", "medium", "low"];
export interface IssueRow {
    issue: IssueInfo;
    /** Acceptance-criteria completion as `passed/total`, or null when none. */
    ac: {
        passed: number;
        total: number;
    } | null;
}
export interface IssueGroup {
    key: string;
    label: string;
    rows: IssueRow[];
}
export declare function sortRows(rows: IssueRow[], sort?: IssueSort): IssueRow[];
/**
 * Build ordered, sorted, grouped rows for rendering.
 * Groups are ordered sensibly (status/priority order, alpha otherwise).
 */
export declare function buildView(issues: IssueInfo[], opts?: {
    sort?: IssueSort;
    groupBy?: IssueGroupBy;
}): IssueGroup[];
//# sourceMappingURL=views.d.ts.map