/**
 * Rendererプロセスから呼び出すMainプロセスのAPI
 */
export interface MainApi {
  /**
   * テキストファイルを保存します
   * @param file ファイルパス
   * @param contents テキスト
   * @return 成功したかどうか
   */
  saveTextFile(file: string, contents: string): Promise<boolean>;

  /**
   * 一時ディレクトリを作成する
   * @return ディレクトリのパス
   */
  makeTmpDirectory(): Promise<string>;

  /**
   * ファイルをコンパイルします
   * @param file コンパイルするファイル
   * @param output 出力ファイル（拡張子は無し）
   * @return 出力ファイル名
   */
  compile(file: string, output: string): Promise<boolean>;

  /**
   * 子プロセスを起動します
   * @param file 実行ファイル名
   * @return プロセスの終了したときの状態
   */
  exec(file: string): Promise<number>;
}
