import "reflect-metadata"; import { Plugin } from "../../handlers"; import { ClassDecorator } from "../types"; export interface DeclaredPlugin { new (...args: any[]): Plugin; } /** * A decorator to declare a class as being a Hindenburg Plugin. The class must extend * either {@link WorkerPlugin} or {@link RoomPlugin} to be successfully loaded. The * version and ordering of your plugin will be taken from your plugin's package.json. * @param id The id of your plugin, must begin with "hbplugin-". * @example * ```ts * .@HindenburgPlugin("hbplugin-fun-things") * export class FunThingsPlugin extends WorkerPlugin { * * } * ``` */ export declare function HindenburgPlugin(id: string): ClassDecorator; /** * A decorator to declare a class as being a Hindenburg Plugin. The class must extend * either {@link WorkerPlugin} or {@link RoomPlugin} to be successfully loaded. The * version and ordering of your plugin will be taken from your plugin's package.json. * @param id The id of your plugin, must begin with "hbplugin-". * @param version The version of your plugin. Note that this is superfluous and as of * recent Hindenburg versions, can instead be taken from your plugin's package.json. * @param loadOrder The ordering that your plugin should be loaded in. Replaced by * package.json: "plugin.loadOrder". * @param defaultConfig The default configuration for your plugin. Replaced by * package.json: "plugin.defaultConfig". * @deprecated * ``` */ export declare function HindenburgPlugin(id: string, version: string, loadOrder?: "first" | "none" | "last" | number, defaultConfig?: any): ClassDecorator; export declare function PreventLoad(target: any): void; export declare function isHindenburgPlugin(object: any): boolean; export declare function shouldPreventLoading(object: any): boolean;