/** * rgui lane demo dataset — git commit history of any GitHub repo. * * A pure history view on the generic timeline engine: one TRACK PER REPO, * events are commits pulled lazily from the GitHub API. Point it at several * repos and their histories run side by side; the fold ladder turns a busy * month into per-repo day/hour heat cells, and zooming into an afternoon * spreads it back into readable commit subjects. * * Commits land at minute precision, so the calendar folds and the adaptive * zoom clamp get real dense recent data. * * Demo-side module: it fetches (GitHub REST). The lane/timeline engine stays * I/O-free — everything arrives through the TimelineDataset.fetch hook. */ import { type TimelineSource } from "./timeline.js"; /** split a repo spec — "owner/name" or "owner/name/tree/branch" */ export declare function parseRepoSpec(spec: string): { path: string; ref?: string; }; /** * Which author lane a commit belongs to, from its message trailers + author. * Unused by the history view (history only — no agent tracks) but kept * exported: it's the attribution rule an agent-activity consumer would use. */ export declare function commitTrack(message: string, author: string): string; /** commit importance: releases and features outlive chores as you zoom out */ export declare function commitImp(subject: string): number; type GhCommit = { sha: string; commit: { message: string; author: { name?: string; date: string; } | null; }; author?: { login?: string; } | null; /** changed-line stats — present only via the GraphQL (token) fetcher */ stats?: { additions: number; deletions: number; }; }; /** normalize a GraphQL history response to REST-shaped rows + a next cursor */ export declare function gqlRows(data: unknown): { rows: GhCommit[]; next: string | null; }; /** size of the on-disk git-history cache (shown in the debug panel) */ export declare function gitCacheStats(): { entries: number; bytes: number; }; /** * Quantize a visible window to a power-of-two-year grid so a zoom/pan sweep * reuses a handful of cell keys instead of minting one per frame (the * deep-time SPARQL feeds learned this the hard way: 100+ requests per zoom * animation before quantization). Returns the aligned cells covering the * window, oldest first. */ export declare function windowCells(topYBP: number, botYBP: number): Array<{ top: number; bot: number; }>; export interface GitHistoryOptions { /** GitHub repos to read, as "owner/name" (default: the rgui repo itself) */ repos?: string[]; /** * how many 100-commit pages a full window may chain (default 4). With an * auth token (5,000 req/h vs 60) the host can afford a deeper chain. */ pageCap?: number; /** * use the GraphQL API (requires the host to inject an auth header for * api.github.com): same windows and caching, but each commit arrives with * changed-line stats that feed importance and the detail line. */ graphql?: boolean; } export declare function createGitHistorySource(opts?: GitHistoryOptions): TimelineSource; export {}; //# sourceMappingURL=githistory.d.ts.map