import type { OASDocument } from 'oas/dist/rmoas.types';
import 'isomorphic-fetch';
import Fetcher from './fetcher';
type CacheStore = Record<string, {
    hash: string;
    original: string | OASDocument;
    /**
     * @deprecated Deprecated in v4.5.0 in favor of `hash`.
     */
    path?: string;
    title?: string;
    version?: string;
}>;
export default class Cache {
    static dir: string;
    static cacheStore: string;
    static specsCache: string;
    uri: string | OASDocument;
    uriHash: string;
    cached: false | CacheStore;
    fetcher: Fetcher;
    constructor(uri: string | OASDocument, cacheDir?: string | false);
    static getCacheHash(file: string | OASDocument): string;
    static setCacheDir(dir?: string | false): void;
    static reset(): Promise<void>;
    isCached(): boolean;
    getCache(): CacheStore;
    get(): any;
    load(): Promise<import("openapi-types").OpenAPIV3.Document<{}> | (Omit<Omit<import("openapi-types").OpenAPIV3.Document<{}>, "paths" | "components">, "paths" | "components" | "info" | "servers" | "webhooks" | "jsonSchemaDialect"> & {
        info: import("openapi-types").OpenAPIV3_1.InfoObject;
        jsonSchemaDialect?: string;
        servers?: import("openapi-types").OpenAPIV3_1.ServerObject[];
    } & Pick<{
        paths: import("openapi-types").OpenAPIV3_1.PathsObject<{}, {}>;
        webhooks: Record<string, import("openapi-types").OpenAPIV3_1.ReferenceObject | import("openapi-types").OpenAPIV3_1.PathItemObject<{}>>;
        components: import("openapi-types").OpenAPIV3_1.ComponentsObject;
    }, "paths"> & Omit<Partial<{
        paths: import("openapi-types").OpenAPIV3_1.PathsObject<{}, {}>;
        webhooks: Record<string, import("openapi-types").OpenAPIV3_1.ReferenceObject | import("openapi-types").OpenAPIV3_1.PathItemObject<{}>>;
        components: import("openapi-types").OpenAPIV3_1.ComponentsObject;
    }>, "paths">) | (Omit<Omit<import("openapi-types").OpenAPIV3.Document<{}>, "paths" | "components">, "paths" | "components" | "info" | "servers" | "webhooks" | "jsonSchemaDialect"> & {
        info: import("openapi-types").OpenAPIV3_1.InfoObject;
        jsonSchemaDialect?: string;
        servers?: import("openapi-types").OpenAPIV3_1.ServerObject[];
    } & Pick<{
        paths: import("openapi-types").OpenAPIV3_1.PathsObject<{}, {}>;
        webhooks: Record<string, import("openapi-types").OpenAPIV3_1.ReferenceObject | import("openapi-types").OpenAPIV3_1.PathItemObject<{}>>;
        components: import("openapi-types").OpenAPIV3_1.ComponentsObject;
    }, "webhooks"> & Omit<Partial<{
        paths: import("openapi-types").OpenAPIV3_1.PathsObject<{}, {}>;
        webhooks: Record<string, import("openapi-types").OpenAPIV3_1.ReferenceObject | import("openapi-types").OpenAPIV3_1.PathItemObject<{}>>;
        components: import("openapi-types").OpenAPIV3_1.ComponentsObject;
    }>, "webhooks">) | (Omit<Omit<import("openapi-types").OpenAPIV3.Document<{}>, "paths" | "components">, "paths" | "components" | "info" | "servers" | "webhooks" | "jsonSchemaDialect"> & {
        info: import("openapi-types").OpenAPIV3_1.InfoObject;
        jsonSchemaDialect?: string;
        servers?: import("openapi-types").OpenAPIV3_1.ServerObject[];
    } & Pick<{
        paths: import("openapi-types").OpenAPIV3_1.PathsObject<{}, {}>;
        webhooks: Record<string, import("openapi-types").OpenAPIV3_1.ReferenceObject | import("openapi-types").OpenAPIV3_1.PathItemObject<{}>>;
        components: import("openapi-types").OpenAPIV3_1.ComponentsObject;
    }, "components"> & Omit<Partial<{
        paths: import("openapi-types").OpenAPIV3_1.PathsObject<{}, {}>;
        webhooks: Record<string, import("openapi-types").OpenAPIV3_1.ReferenceObject | import("openapi-types").OpenAPIV3_1.PathItemObject<{}>>;
        components: import("openapi-types").OpenAPIV3_1.ComponentsObject;
    }>, "components">) | import("openapi-types").OpenAPIV2.Document<{}>>;
    save(spec: OASDocument): OASDocument;
}
export {};
