export type AppendFnType = string | number | symbol;
export interface StatisticAppendProvider {
    append(name: string, fn: AppendFnType, content: string): void;
}
export type DummyAppendMemoryMap = Map<string, Map<AppendFnType, string[]>>;
export declare class DummyAppendProvider implements StatisticAppendProvider {
    private readonly map;
    /**
     * If you pass a map the dummy will log all append calls to the map, using the feature name and the appendage type as keys
     * @param map - The map to log to
     */
    constructor(map?: DummyAppendMemoryMap | undefined);
    append(name: string, fn: AppendFnType, content: string): void;
}
export declare const defaultStatisticsFileSuffix = ".txt";
/**
 * Provides cached open connections for all files to connect.
 * allowing to append to the same file often.
 * <p>
 * While we could simply reopen these files, it is safer/more performant to keep the connection open.
 */
export declare class StatisticFileProvider implements StatisticAppendProvider {
    readonly statisticsDirectory: string;
    private readonly connections;
    constructor(statisticsDirectory: string | undefined);
    /**
     * @param name - the name of the feature {@link Feature#name}
     * @param fn - the name of the feature-aspect to record
     */
    private statisticsFile;
    /**
     * Append the given content to the information for a feature of the given name and function.
     */
    append(name: string, fn: AppendFnType, content: string): void;
    private getHandle;
}
