import type { Scrubber } from "../Scrubbers/Scrubbers";
import { Namer } from "../Namer";
import { Config } from "../config";
import { Reporter } from "./Reporter";
export type ConfigModifier = (t: any) => any;
declare class FileOptions {
    private options;
    constructor(options: Options);
    withFileExtention(extensionWithDot: string): Options;
    getFileExtension(): string;
}
export declare class Options {
    protected fields: {
        [n: string]: any;
    };
    constructor();
    modify(key: string, value: any): Options;
    forFile(): FileOptions;
    get<Type>(key: string, default1: () => Type): Type;
    withScrubber(scrubber: Scrubber): Options;
    getScrubber(): Scrubber;
    scrub(text: string): string;
    withConfig(configModifier: ConfigModifier): Options;
    getConfig(config: any): Config;
    withNamer(namer: Namer): Options;
    getNamer(): Namer;
    withReporter(reporter: Reporter): Options;
}
export {};
