import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
import GirafeSingleton from '../../base/GirafeSingleton.js';
type Callback = (elem: GirafeHTMLElement) => unknown;
type Constructor<T> = new (...args: unknown[]) => T;
export default class ComponentManager extends GirafeSingleton {
    private readonly components;
    private readonly registeredCallbacks;
    private readonly registeredCallbacksClasses;
    registerComponent(component: GirafeHTMLElement): void;
    registerComponentCallback(component: Constructor<GirafeHTMLElement>, callback: Callback): void;
    getComponents<T extends GirafeHTMLElement>(type: Constructor<T>): T[];
    getComponentsByName(name: string): GirafeHTMLElement[];
}
export {};
