/**
 * GitHub API Client
 *
 * Wrapper around Octokit for fetching DORA metrics data
 * Handles authentication, rate limiting, and error handling
 */
import { Release, Commit, Issue, GitHubConfig } from './types.js';
/**
 * GitHub API Client for DORA Metrics
 */
export declare class GitHubClient {
    private octokit;
    private owner;
    private repo;
    constructor(config: GitHubConfig);
    /**
     * Get releases from last N days
     *
     * @param since - Date to fetch releases from
     * @returns Array of releases
     */
    getReleases(since: Date): Promise<Release[]>;
    /**
     * Get commits for a specific SHA range
     *
     * @param sha - Commit SHA to start from
     * @param until - Date to fetch commits until
     * @returns Array of commits
     */
    getCommits(sha: string, until: Date): Promise<Commit[]>;
    /**
     * Get commits to the default branch (develop/main) since a date
     *
     * For AI-assisted development workflows, each push to develop
     * represents a deployment. This is more accurate than counting
     * only formal releases.
     *
     * @param since - Date to fetch commits from
     * @param branch - Branch name (defaults to 'develop')
     * @returns Array of commits
     */
    getCommitsToDefaultBranch(since: Date, branch?: string): Promise<Commit[]>;
    /**
     * Get issues with specific labels
     *
     * @param labels - Array of label names to filter by
     * @param since - Date to fetch issues from
     * @returns Array of issues
     */
    getIssues(labels: string[], since: Date): Promise<Issue[]>;
    /**
     * Handle GitHub API rate limit errors
     *
     * Implements exponential backoff:
     * 1. Check X-RateLimit-Reset header
     * 2. Wait until reset time (max 1 minute)
     * 3. Retry request
     *
     * @param error - GitHub API error
     */
    private handleRateLimit;
}
//# sourceMappingURL=github-client.d.ts.map