/// <reference path="./app.globals.d.ts" />
import * as execa0 from "execa";
import { Command } from "@h3ravel/musket";
import { ServiceProvider } from "@h3ravel/core";
import { UserConfig } from "tsdown";

//#region src/Commands/BuildCommand.d.ts
declare class BuildCommand extends Command {
  /**
   * The name and signature of the console command.
   *
   * @var string
   */
  protected signature: string;
  /**
   * The console command description.
   *
   * @var string
   */
  protected description: string;
  handle(): Promise<void>;
  protected fire(): Promise<void>;
  /**
   * build
   */
  static build({
    debug,
    minify,
    mute,
    verbosity,
    outDir
  }?: {
    mute: boolean;
    debug: boolean;
    minify: boolean;
    verbosity: number;
    outDir: string;
  }): Promise<void | execa0.Result<{
    stdout: "inherit";
    stderr: "inherit";
    cwd: string;
    env: NodeJS.ProcessEnv & {
      EXTENDED_DEBUG: string;
      CLI_BUILD: string;
      NODE_ENV: string;
      DIST_DIR: string;
      DIST_MINIFY: boolean;
      LOG_LEVEL: string;
    };
  }>>;
}
//#endregion
//#region src/Commands/KeyGenerateCommand.d.ts
declare class KeyGenerateCommand extends Command {
  /**
   * The name and signature of the console command.
   *
   * @var string
   */
  protected signature: string;
  /**
   * The console command description.
   *
   * @var string
   */
  protected description: string;
  handle(): Promise<void>;
}
//#endregion
//#region src/Commands/MakeCommand.d.ts
declare class MakeCommand extends Command {
  /**
   * The name and signature of the console command.
   *
   * @var string
   */
  protected signature: string;
  /**
   * The console command description.
   *
   * @var string
   */
  protected description: string;
  handle(this: any): Promise<void>;
  /**
   * Create a new controller class.
   */
  protected makeController(): Promise<void>;
  protected makeResource(): void;
  /**
   * Create a new Musket command
   */
  protected makeCommand(): void;
  /**
   * Create a new view.
   */
  protected makeView(): Promise<void>;
}
//#endregion
//#region src/Commands/PostinstallCommand.d.ts
declare class PostinstallCommand extends Command {
  /**
   * The name and signature of the console command.
   *
   * @var string
   */
  protected signature: string;
  /**
   * The console command description.
   *
   * @var string
   */
  protected description: string;
  handle(): Promise<void>;
  /**
   * Create sqlite database if none exist
   *
   * @returns
   */
  private genEncryptionKey;
  /**
   * Create sqlite database if none exist
   *
   * @returns
   */
  private createSqliteDB;
}
//#endregion
//#region src/Providers/ConsoleServiceProvider.d.ts
/**
 * Handles CLI commands and tooling.
 *
 * Auto-Registered when in CLI mode
 */
declare class ConsoleServiceProvider extends ServiceProvider {
  static priority: number;
  /**
   * Indicate that this service provider only runs in console
   */
  static runsInConsole: boolean;
  runsInConsole: boolean;
  register(): void;
}
//#endregion
//#region src/TsdownConfig.d.ts
declare const TsDownConfig: UserConfig;
//#endregion
export { BuildCommand, ConsoleServiceProvider, KeyGenerateCommand, MakeCommand, PostinstallCommand, TsDownConfig };
//# sourceMappingURL=index.d.ts.map