export declare const TREE_BRANCH = "\u251C\u2500 ";
export declare const TREE_LAST = "\u2514\u2500 ";
export declare const TREE_PIPE = "\u2502  ";
export declare const TREE_SPACE = "   ";
/**
 * Build a tree prefix string from ancestor-continuation flags and branch position.
 *
 * Each ancestor level contributes either a pipe ("│  ") or blank spacing ("   ")
 * depending on whether that ancestor has more siblings after it. The final segment
 * is the branch connector: "├─ " (more siblings) or "└─ " (last sibling).
 *
 * Used by session-selector for its simpler flat tree display.
 * tree-selector uses its own gutter-based char-by-char builder for richer rendering.
 */
export declare function buildTreePrefix(ancestorContinues: boolean[], isLast: boolean, depth: number): string;
export interface ScrollWindow {
    /** First visible index (inclusive) */
    startIndex: number;
    /** Last visible index (exclusive) */
    endIndex: number;
}
/**
 * Compute a centered scroll window around `selectedIndex` within a list of `totalItems`.
 *
 * The window tries to center the selected item. When near the beginning or end of the
 * list the window clamps so it doesn't exceed bounds.
 */
export declare function computeScrollWindow(selectedIndex: number, totalItems: number, maxVisible: number): ScrollWindow;
/**
 * Return the cursor indicator for a list row.
 *
 * Selected:   "› " (accent-colored)
 * Unselected: "  " (two spaces, matching width)
 */
export declare function renderCursor(isSelected: boolean): string;
/**
 * Apply selected-row background highlight and truncate to `width`.
 */
export declare function applyRowHighlight(line: string, isSelected: boolean, width: number): string;
/**
 * Render a muted "(current/total)" position indicator, optionally with a suffix label.
 */
export declare function renderScrollPosition(selectedIndex: number, totalItems: number, width: number, suffixLabel?: string): string;
//# sourceMappingURL=tree-render-utils.d.ts.map