/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Duration } from "#time/index.js";
import { Bytes } from "./Bytes.js";
type Cache = (name: string, generator: (name: string) => Promise<string>) => Promise<string>;
/**
 * Options for GitHub API requests via fetch
 */
export interface FetchOptions {
    /** Timeout in milliseconds for GitHub API requests */
    timeout?: Duration;
}
export declare class Directory {
    #private;
    readonly url: string;
    constructor(url: string, cache: Cache, options?: FetchOptions, auth?: string);
    ls(): Promise<string[]>;
    cd(name: string): Promise<Directory>;
    get(name: string): Promise<string>;
    getBinary(name: string): Promise<Bytes>;
    private load;
    private find;
    private fetch;
    private fetchBinary;
    /**
     * Perform the actual fetch request with common options
     */
    private doFetch;
}
/**
 * Uber-minimal github client
 */
export declare class Repo extends Directory {
    constructor(org: string, repo: string, branch: string, options?: FetchOptions, cache?: Cache, auth?: string);
}
export {};
//# sourceMappingURL=Github.d.ts.map