export type VelocityPeriod = 'daily' | 'weekly' | 'quarterly'; export interface ContributorMetrics { id: string; commits: number; linesAdded: number; linesDeleted: number; issuesClosed: number; issuesOpened: number; } export interface VelocitySnapshot { period: VelocityPeriod; date: string; range: { start: string; end: string; }; contributors: ContributorMetrics[]; projectTotals: { commits: number; linesAdded: number; linesDeleted: number; issuesClosed: number; issuesOpened: number; }; capturedAt: string; } export interface VelocitySnapshotInput { projectId?: string; period: VelocityPeriod; referenceDate?: string; } export interface VelocitySnapshotOutput { snapshotId: string; path: string; period: VelocityPeriod; date: string; range: { start: string; end: string; }; contributorCount: number; totals: { commits: number; linesAdded: number; linesDeleted: number; }; } export interface VelocityListInput { projectId?: string; period?: VelocityPeriod; limit?: number; } export interface VelocityListOutput { snapshots: Array<{ id: string; period: VelocityPeriod; date: string; contributorCount: number; commits: number; linesAdded: number; linesDeleted: number; }>; total: number; } export interface VelocityTrend { metric: string; direction: 'up' | 'down' | 'stable'; changePercent: number; current: number; previous: number; } export interface VelocityTrendsInput { projectId?: string; period: VelocityPeriod; metric?: 'commits' | 'lines' | 'issues'; } export interface VelocityTrendsOutput { period: VelocityPeriod; trends: VelocityTrend[]; comparedSnapshots: { current: string; previous: string; } | null; } export interface VelocityContributorInput { projectId?: string; contributorId: string; period?: VelocityPeriod; limit?: number; } export interface VelocityContributorOutput { contributorId: string; snapshots: Array<{ date: string; period: VelocityPeriod; commits: number; linesAdded: number; linesDeleted: number; issuesClosed: number; issuesOpened: number; }>; totals: { commits: number; linesAdded: number; linesDeleted: number; issuesClosed: number; issuesOpened: number; }; } export interface VelocityError { error: string; message: string; hint?: string; } export declare function captureSnapshot(input: VelocitySnapshotInput): Promise; export declare function listSnapshots(input: VelocityListInput): Promise; export declare function getTrends(input: VelocityTrendsInput): Promise; export declare function getContributorReport(input: VelocityContributorInput): Promise; export declare function isVelocityError(result: unknown): result is VelocityError; export interface InstallHookInput { projectId?: string; hookType?: 'post-commit' | 'post-push'; periods?: VelocityPeriod[]; } export interface InstallHookOutput { installed: boolean; hookPath: string; hookType: string; periods: VelocityPeriod[]; message: string; } export interface UninstallHookInput { projectId?: string; hookType?: 'post-commit' | 'post-push'; } export interface UninstallHookOutput { removed: boolean; hookPath: string; message: string; } export declare function installHook(input: InstallHookInput): Promise; export declare function uninstallHook(input: UninstallHookInput): Promise; //# sourceMappingURL=velocity.d.ts.map