import { type PathAbsolute } from '@knapsack/file-utils';
import { type KsAppClientDataNoMeta, type TemplateInfo, type GeneralDiscovery, type RendererDiscovery, type RendererId } from '@knapsack/types';
/**
 * Cache directory. Likely will be `node_modules/.cache/@knapsack/app/` but falls back to the `/tmp` directory if it has problems.
 */
export declare const ksCacheDir: PathAbsolute;
/** Deletes contents of cache directory – directory itself remains */
export declare const emptyKsCacheDir: () => Promise<void>;
/** Deletes template inspect cache to prevent stale cache when components change */
export declare const emptyTemplateInspectCache: () => Promise<void>;
export declare const appClientDataFileHelper: {
    path: PathAbsolute;
    read: () => Promise<KsAppClientDataNoMeta>;
    readSync: () => KsAppClientDataNoMeta;
    write: (data: KsAppClientDataNoMeta) => Promise<void>;
    exists: () => boolean;
};
export declare const discoveryFileHelper: {
    path: PathAbsolute;
    read: () => Promise<GeneralDiscovery>;
    readSync: () => GeneralDiscovery;
    write: (data: GeneralDiscovery) => Promise<void>;
    exists: () => boolean;
};
export declare const getRendererDiscoveryFileHelper: <TheRendererId extends RendererId>(rendererId: TheRendererId) => {
    path: PathAbsolute;
    read: () => Promise<RendererDiscovery<TheRendererId>>;
    readSync: () => RendererDiscovery<TheRendererId>;
    write: (data: RendererDiscovery<TheRendererId>) => Promise<void>;
    exists: () => boolean;
};
export declare const getTemplateInspectFileHelper: (templateInfo: TemplateInfo) => {
    path: PathAbsolute;
    read: () => Promise<{
        type: "success";
        spec: import("@knapsack/types").KsTemplateSpec;
    } | {
        type: "noSpecInferred";
    } | {
        type: "error.unknown";
        message: string;
    } | {
        type: "renderer.notFound";
    } | {
        type: "renderer.noInspectSupported";
    }>;
    readSync: () => {
        type: "success";
        spec: import("@knapsack/types").KsTemplateSpec;
    } | {
        type: "noSpecInferred";
    } | {
        type: "error.unknown";
        message: string;
    } | {
        type: "renderer.notFound";
    } | {
        type: "renderer.noInspectSupported";
    };
    write: (data: {
        type: "success";
        spec: import("@knapsack/types").KsTemplateSpec;
    } | {
        type: "noSpecInferred";
    } | {
        type: "error.unknown";
        message: string;
    } | {
        type: "renderer.notFound";
    } | {
        type: "renderer.noInspectSupported";
    }) => Promise<void>;
    exists: () => boolean;
};
export declare function writePortFile(port: number): Promise<void>;
export declare const buildMetaFileHelper: {
    path: PathAbsolute;
    read: () => Promise<{
        buildTime: string;
        buildId: string;
    }>;
    readSync: () => {
        buildTime: string;
        buildId: string;
    };
    write: (data: {
        buildTime: string;
        buildId: string;
    }) => Promise<void>;
    exists: () => boolean;
};
//# sourceMappingURL=cache-dir.d.ts.map