declare abstract class TmpHelper {
    cacheKey: string;
    maxAge?: number | undefined;
    protected constructor(cacheKey: string, maxAge?: number | undefined);
    abstract setContent(content: string): Promise<void>;
    abstract getContent(): Promise<string | undefined>;
}
export declare class TmpFile implements TmpHelper {
    cacheKey: string;
    maxAge?: number | undefined;
    constructor(cacheKey: string, maxAge?: number | undefined);
    setContent(content: string): Promise<void>;
    getContent(): Promise<string | undefined>;
    private validateContent;
}
export declare class TmpRedis implements TmpHelper {
    cacheKey: string;
    maxAge?: number | undefined;
    private redisClient;
    constructor(cacheKey: string, maxAge?: number | undefined);
    getContent(): Promise<string | undefined>;
    setContent(content: string): Promise<void>;
}
export interface TmpContent {
    readonly content: string;
    readonly lastEditTime: number;
    readonly maxAge?: number;
}
export declare const createTmpFactory: (baseDir: string, cacheType?: "default" | "redis") => ((filePath: string, maxAge?: number) => TmpFile | TmpRedis);
export {};
