import { ExitCode } from "./codes";
import { IFileSystem } from "./fileSystem";
import { ILogger } from "./logger";
/**
 * Dependencies to set up and run a runner.
 */
export interface IMainDependencies {
    /**
     * Base or root directory to ignore from the beginning of file paths, such as "src/", if not "".
     */
    baseDirectory?: string;
    /**
     * Unique file paths to convert.
     */
    filePaths: ReadonlySet<string>;
    /**
     * Reads and writes files.
     */
    fileSystem: IFileSystem;
    /**
     * Names of output language(s) to convert to.
     */
    languageNames?: ReadonlyArray<string>;
    /**
     * Logs information on significant events.
     */
    logger: ILogger;
    /**
     * Namespace before path names, such as "Budgie", if not "".
     */
    namespace?: string;
    /**
     * Budgie configuration project, if provided.
     */
    project?: string;
    /**
     * TypeScript configuration project, if provided.
     */
    typescriptConfig?: string;
}
/**
 * Validates Budgie settings, sets up a conversion runner, and runs it.
 *
 * @param dependencies   Dependencies to set up and run a runner.
 */
export declare const main: (dependencies: IMainDependencies) => Promise<ExitCode>;
export declare type IMain = typeof main;
