export type PackageManager = "npm" | "pnpm" | "bun"; export type StarterExample = "minimal" | "basic" | "zustand" | "jotai" | "pokemon"; export type StreamDeckPlatform = "mac" | "windows"; export type NativeBindingsMode = "lazy" | "copy"; export type Adapter = "physical" | "custom"; export interface ScaffoldOptions { packageName: string; displayName: string; pluginUuid: string; author: string; description: string; category: string; packageManager: PackageManager; example: StarterExample; platforms: StreamDeckPlatform[]; nativeBindings: NativeBindingsMode; reactCompiler: boolean; adapter: Adapter; streamdeckReactVersion: string; } export interface ActionIconTemplate { id: string; name: string; colors: { from: string; to: string; }; } export interface ExamplePreset { dependencies: Record; files: (options: ScaffoldOptions) => Record; actions: ActionIconTemplate[]; } interface ExampleOption { id: StarterExample; label: string; description: string; } interface ChoiceOption { value: T; label: string; description: string; } export declare const EXAMPLE_OPTIONS: ExampleOption[]; export declare const PACKAGE_MANAGER_OPTIONS: Array>; export declare const PLATFORM_OPTIONS: Array>; export declare const ADAPTER_OPTIONS: Array>; export declare const NATIVE_BINDINGS_OPTIONS: Array>; export declare function resolveLatestVersion(packageName: string): Promise; export declare function detectPackageManager(userAgent: string | undefined): PackageManager; export declare function derivePackageName(projectDir: string): string; export declare function deriveDisplayName(packageName: string): string; export declare function derivePluginUuid(packageName: string): string; export declare function validatePluginUuid(uuid: string): boolean; export declare function normalizePlatforms(values: string[]): StreamDeckPlatform[]; export declare function buildProjectFiles(options: ScaffoldOptions): Record; export declare function buildViteConfig(options: Pick): string; export {};