import { Uri } from "@velcro/common";
import { AbstractResolverStrategyWithRoot, ResolverContext, ResolverStrategy } from "@velcro/resolver";
declare const version = "__VERSION__";
declare namespace FsStrategy {
    type Dirent = {
        isFile(): boolean;
        isDirectory(): boolean;
        name: string;
    };
    interface FsInterface {
        promises: {
            readdir(path: string, options: {
                encoding: "utf-8";
                withFileTypes: true;
            }): Promise<Dirent[]>;
            readFile(path: string): Promise<ArrayBuffer>;
            realpath(path: string): Promise<string>;
        };
    }
    interface Options {
        fs: FsInterface;
        rootUri?: Uri;
    }
}
declare class FsStrategy extends AbstractResolverStrategyWithRoot {
    private readonly fs;
    constructor(options: FsStrategy.Options);
    private ensureUriUnderRoot;
    getCanonicalUrl(_ctx: ResolverContext, uri: Uri): Promise<ResolverStrategy.CanonicalizeResult>;
    getRootUrl(): {
        uri: Uri;
    };
    getResolveRoot(_ctx: ResolverContext, uri: Uri): Promise<never> | {
        uri: Uri;
    };
    listEntries(_ctx: ResolverContext, uri: Uri): Promise<ResolverStrategy.ListEntriesResult>;
    readFileContent(_ctx: ResolverContext, uri: Uri): Promise<{
        content: ArrayBuffer;
    }>;
}
export { version, FsStrategy };
//# sourceMappingURL=index.d.ts.map