/**
 * GitHub REST API client.
 *
 * Uses fetch + the `X-GitHub-Api-Version` header that the current REST
 * API documents. Authentication is optional but recommended — anonymous
 * requests are limited to 60/h per IP, while an authenticated user gets
 * 5,000/h. We read the token from `GITHUB_TOKEN`, then `GH_TOKEN`,
 * then fall back to anonymous.
 */
import type { RepoStats, IssueSummary, PullSummary, ReleaseSummary, ContributorSummary, ParsedRepo } from './types.js';
export interface FetchOptions {
    token?: string;
    /** Maximum number of issues to fetch. Default: 30. */
    issueLimit?: number;
    /** Maximum number of PRs to fetch. Default: 20. */
    pullLimit?: number;
    /** Maximum number of releases to fetch. Default: 10. */
    releaseLimit?: number;
    /** Maximum number of contributors to fetch. Default: 20. */
    contributorLimit?: number;
    /** When true, only open issues are returned. Default: false. */
    openIssuesOnly?: boolean;
    /** When true, only open PRs are returned. Default: false. */
    openPullsOnly?: boolean;
    /** Custom fetch implementation (used for testing). */
    fetchImpl?: typeof fetch;
}
export interface FetchedStats {
    repo: RepoStats;
    issues: IssueSummary[];
    pulls: PullSummary[];
    releases: ReleaseSummary[];
    contributors: ContributorSummary[];
}
export declare function fetchRepoStats(repo: ParsedRepo, options?: FetchOptions): Promise<FetchedStats>;
//# sourceMappingURL=github.d.ts.map