import { Tree, GeneratorCallback } from '@nx/devkit';
import { TypeScriptLibraryGeneratorSchema } from '@storm-software/workspace-tools';

type WorkerGeneratorSchema = TypeScriptLibraryGeneratorSchema & {
  template?: "fetch-handler" | "scheduled-handler" | "hono" | "none";
  js?: boolean;
  unitTestRunner?: "vitest" | "none";
  directory?: string;
  rootProject?: boolean;
  tags?: string;
  frontendProject?: string;
  skipFormat?: boolean;
  port?: number;
  accountId?: string;
  addPlugin?: boolean;
};

declare function applicationGenerator(tree: Tree, schema: WorkerGeneratorSchema): Promise<GeneratorCallback>;

declare const applicationSchematic: (generatorOptions: any) => (tree: any, context: any) => Promise<any>;

export { type WorkerGeneratorSchema as W, applicationGenerator as a, applicationSchematic as b };
