/** * The `ControllerBase` class is an abstract base class responsible for managing commands and providing a structure * for controllers or command spaces. * * @author Leonid Vinikov */ import { ObjectBase } from "./object-base"; import type { CommandPublic } from "../command-bases/command-public"; import type { CommandRestful } from "../command-bases/command-restful"; import type { CommandInternal } from "../command-bases/command-internal"; export declare abstract class ControllerBase extends ObjectBase { private commands; private restful; private internal; static getName(): string; /** * Constructor for `ControllerBase` instances. * Initializes the base class and invokes the `initialize()` method. */ constructor(); /** * Initializes the controller by calling the `register()` method and optionally the `setupHooks()` method. */ protected initialize(): void; /** * Registers commands and command types by calling manager functions. */ protected register(): void; /** * Retrieve the public commands associated with this controller. * Derived classes can override this method to specify their own commands. */ protected getCommands(): { [key: string]: typeof CommandPublic; }; /** * Retrieve the RESTful commands associated with this controller. * Derived classes can override this method to specify their own RESTful commands. */ protected getRestful(): { [key: string]: typeof CommandRestful; }; /** * Retrieve the internal commands associated with this controller. * Derived classes can override this method to specify their own internal commands. */ protected getInternal(): { [key: string]: typeof CommandInternal; }; /** * A hook method that can be optionally overridden in derived classes to set up hooks or event listeners. */ protected setupHooks?(): void; }