import type { GitHubAppConfig } from "./types.js"; export interface Installation { id: number; account: { login: string; type: string; }; repositorySelection: string; } export interface CreateKeyPROpts { owner: string; repo: string; installationId: number; userId: string; publicKey: string; keyPath: string; } export interface CreateKeyPRResult { prUrl: string; prNumber: number; branch: string; } /** * Client for interacting with GitHub as a GitHub App. * Uses @octokit/rest and @octokit/auth-app for authentication. */ export declare class GitHubAppClient { private readonly config; constructor(config: GitHubAppConfig); /** * Get an installation access token for a specific installation. */ getInstallationToken(installationId: number): Promise; /** * Create a pull request to add an SSH public key to a repository. */ createKeyPR(opts: CreateKeyPROpts): Promise; /** * Read a file from a repository. */ readFile(opts: { owner: string; repo: string; installationId: number; path: string; ref?: string; }): Promise; /** * List all installations for this GitHub App. */ listInstallations(): Promise; /** * Extract the key type prefix from an SSH public key string. */ private extractKeyType; /** * Extract a short fingerprint-like identifier from an SSH public key. * Returns the first 16 chars of the base64 key data for identification. */ private extractKeyFingerprint; private createAppOctokit; private createInstallationOctokit; } //# sourceMappingURL=github-app.d.ts.map