import events from "node:events";
import type { Adapter } from "../../adapter";
import type Database from "../database";
type EventMap<T> = Record<keyof T, any[]> | DefaultEventMap;
type DefaultEventMap = [never];
export declare abstract class Entity<T extends EventMap<T> = DefaultEventMap> extends events.EventEmitter<T> {
    protected static databases: Map<number, Database>;
    protected static adapters: Map<number, Adapter>;
    static injectDatabase(database: Database): void;
    static injectAdapter(databaseID: number, adapter: Adapter): void;
    static removeDatabase(databaseID: number): void;
    static removeAdapter(databaseID: number): void;
    static getAdapterByID(id: number): Adapter | undefined;
    static databaseIDExists(id: number): boolean;
    static getDatabaseByID(id: number): Database | undefined;
}
export default Entity;
//# sourceMappingURL=entity.d.ts.map