import { VcsClientRepositoryFiles } from '../abstract/vcs-client-repository-files.js'; import type { VcsFileContent, VcsFileContentQuery } from '../entities/vcs-file-content.type.js'; /** * @purpose Access to repository file contents via GitHub Contents API. * @invariant Error Policy: Network/status errors are thrown outward. 404 → null. * @invariant Encoding Contract: GitHub returns base64 → adapter decodes to utf-8. * @consumer VcsGithubClient */ export declare class VcsGithubRepositoryFiles extends VcsClientRepositoryFiles { /** @purpose GitHub API base URL */ protected _baseUrl: string; /** @purpose GitHub access token */ protected _token: string; /** * @purpose Wire the adapter with GitHub connection params for raw content fetches. * @param baseUrl GitHub API base URL (e.g. https://api.github.com). * @param token GitHub personal access token. */ constructor(baseUrl: string, token: string); /** * @param query Target repository, file path, and ref. * @returns File content or null if file not found. * @sideEffect Network: GET /repos/:owner/:repo/contents/:path?ref= * @see {VcsClientRepositoryFiles#getFileContent} in services/vcs-client/abstract/vcs-client-repository-files.ts */ getFileContent(query: VcsFileContentQuery): Promise; }