import type LoggerFactory from "@vaadin/hilla-generator-utils/LoggerFactory.js"; import type { Logger } from "@vaadin/hilla-generator-utils/LoggerFactory.js"; import type { Constructor } from "type-fest"; import type ReferenceResolver from "./ReferenceResolver.js"; import type { SharedStorage } from "./SharedStorage.js"; export default abstract class Plugin { readonly resolver: ReferenceResolver; readonly logger: Logger; constructor(resolver: ReferenceResolver, logger: LoggerFactory); get name(): string; abstract get path(): string; abstract execute(storage: SharedStorage): Promise | void; } export type PluginConstructor = Constructor>;