/** * Mediator class for managing and accessing various components of the FavaLib. */ declare class FavaLibMediator { private components; /** * Unregister a component with the mediator. Is used in testing * @param key - The key representing the component type. */ unRegisterComponent(key: T): void; /** * Registers a single component with the mediator. * @param key - The key representing the component type. * @param component - The component instance to register. * @throws {InitializationError} If the component is already registered. */ registerComponent(key: T, component: NonNullable<(typeof this.components)[T]>): void; /** * Registers multiple components with the mediator. * @param componentsArray - An array of key-component pairs to register. */ registerComponents(componentsArray: [T, NonNullable<(typeof this.components)[T]>][]): void; /** * Retrieves a component by its key. * @param key - The key representing the component type. * @returns The component instance. * @throws {InitializationError} If the component is not initialized. */ getComponent(key: T): NonNullable<(typeof this.components)[T]>; /** * Checks if a component is initialized. * @param key - The key representing the component type. * @returns True if the component is initialized, false otherwise. */ componentIsInitialised(key: T): boolean; } export default FavaLibMediator;