import { SourceFile } from "ts-morph";
import { ImportContainer } from "../generator/ImportContainer.js";
import { EmitModes } from "../OptionModel.js";
import { FileFormatter } from "./formatter/FileFormatter.js";
export declare class FileHandler {
    readonly path: string;
    readonly fileName: string;
    protected readonly file: SourceFile;
    protected readonly importContainer: ImportContainer;
    protected formatter: FileFormatter | undefined;
    readonly allowTypeChecking: boolean;
    constructor(path: string, fileName: string, file: SourceFile, importContainer: ImportContainer, formatter: FileFormatter | undefined, allowTypeChecking: boolean);
    getFullFilePath(): string;
    getFile(): SourceFile;
    getImports(): ImportContainer;
    write(emitMode: EmitModes, noOutput?: boolean): Promise<void | import("ts-morph").EmitResult>;
    private formatAndWriteFile;
}
