import { GitHubAccessor } from '../../accessor/github.ts';
import { GitHubConfig } from '../../core/github/config.ts';
import { type ByteSource } from '../../io/types.ts';
import type { DirListing, FileStat, PathSpec } from '../../types.ts';
import { ListingVersion } from '../../types.ts';
import { BaseVFS } from '../base.ts';
import type { RedactedSchema } from '../secrets.ts';
import type { Handed } from '../types.ts';
export interface GitHubVFSState {
    type: string;
    config: RedactedSchema<typeof GitHubConfig>;
    defaultBranch: string;
    truncated: boolean;
}
export declare class GitHubVFS extends BaseVFS {
    readonly name: string;
    readonly cachesReads: boolean;
    readonly sizesAlwaysKnown: boolean;
    readonly supportsSnapshot: boolean;
    readonly readRevalidatable: boolean;
    readonly listingVersion: ListingVersion;
    readonly listingsPin: string | null;
    readonly indexTtl: number;
    readonly wholeWordSearch: boolean;
    readonly config: GitHubConfig;
    readonly accessor: GitHubAccessor;
    walkLimit: number;
    private constructor();
    static create(config: GitHubConfig): Promise<GitHubVFS>;
    readonly handed: {
        readonly readdir: readonly ["entry"];
        readonly read: readonly ["entry"];
        readonly readMany: readonly ["entry"];
        readonly stat: readonly ["entry", "index"];
    };
    readdir(path: PathSpec, handed?: Handed): Promise<DirListing>;
    read(path: PathSpec, handed?: Handed): Promise<ByteSource>;
    readMany(paths: PathSpec[], limit: number, handed?: readonly Handed[]): Promise<Map<string, Uint8Array>>;
    stat(path: PathSpec, handed?: Handed): Promise<FileStat>;
    readTree(path: PathSpec): Promise<Map<string, FileStat> | null>;
    /**
     * Whether this VFS answers `name`; with no walk limit it reads every
     * file rather than ask the service's search.
     */
    supports(name: string): boolean;
    filesContaining(path: PathSpec, text: string, opts: {
        wholeWord: boolean;
        ignoreCase: boolean;
    }): Promise<PathSpec[] | null>;
    getState(): Promise<GitHubVFSState>;
}
//# sourceMappingURL=github.d.ts.map