import type { WorkspaceFileReader } from "../workspace/WorkspaceFileReader.js";
/**
 * Creates a {@link WorkspaceFileReader} backed by the GitHub Contents API,
 * with a Blob-API fallback for files above the Contents 1 MB cap.
 *
 * Uses the same client-side OAuth token as {@link useGitHubTreeLister}
 * (`Authorization: Bearer`), inheriting its private-repo scope. Returns
 * `undefined` when no token is present, mirroring the tree lister so callers
 * can treat "no reader" and "no lister" identically.
 *
 * The reader itself:
 * - Returns `null` when the entry is not a readable GitHub git repo
 *   (non-git entry, missing/unparseable URL) — the "unsupported here" state.
 * - **Throws** on a real failure: a non-OK response, or a directory path
 *   (which the Contents API returns as a JSON array). Consumers surface these
 *   as an error, distinct from the null "unsupported" state.
 *
 * @example
 * ```tsx
 * const gitHubConnection = useGitHubConnection(org);
 * const fileReader = useGitHubFileReader(gitHubConnection.token);
 * <SessionViewer workspaceFileReader={fileReader} />
 * ```
 */
export declare function useGitHubFileReader(token: string | null): WorkspaceFileReader | undefined;
//# sourceMappingURL=useGitHubFileReader.d.ts.map