import { EventEmitter_, EventEmitter_EE } from '../EventEmitter';
import { System } from '../system';
import { Dict } from '../types/Dict';
export type $_EE = {
    destroy: [string[]];
    register: [string];
    unregister: [];
};
export type $Events<_EE extends Dict<any[]>> = EventEmitter_EE<_EE & $_EE> & $_EE;
export declare class $<_EE extends $Events<_EE> & Dict<any[]> = $Events<$_EE>> extends EventEmitter_<_EE> {
    __: string[];
    $__: string[];
    __system: System;
    __global_id: string;
    __done: boolean;
    constructor(system: System);
    getGlobalId(): string;
    getInterface(): string[];
    refSystem(): System;
    register(): void;
    unregister(): void;
    destroy(): void;
    raw(): any;
}
