///
import { Store as RefluxStore } from 'reflux';
import EventEmitter from 'eventemitter3';
import { Actions } from './actions';
interface Role {
name: string;
component: React.JSXElementConstructor;
order?: number;
}
interface Store extends RefluxStore {
onActivated?: (appRegistry: AppRegistry) => void;
}
export declare class AppRegistry {
_emitter: EventEmitter;
actions: Record;
components: Record>;
stores: Record;
roles: Record;
storeMisses: Record;
constructor();
static get Actions(): typeof Actions;
static get AppRegistry(): typeof AppRegistry;
deregisterAction(name: string): this;
deregisterComponent(name: string): this;
deregisterRole(name: string, object: Role): this;
deregisterStore(name: string): this;
getAction(name: string): unknown;
getComponent(name: string): React.JSXElementConstructor | undefined;
getRole(name: string): Role[] | undefined;
getStore(name: string): Store;
onActivated(): this;
registerAction(name: string, action: unknown): this;
registerComponent(name: string, component: React.JSXElementConstructor): this;
registerRole(name: string, role: Role): this;
registerStore(name: string, store: Store): this;
addListener(eventName: string, listener: (...args: any[]) => void): this;
emit(eventName: string, ...args: any[]): boolean;
eventNames(): string[];
listenerCount(eventName: string): number;
listeners(eventName: string): ((...args: any[]) => void)[];
on(eventName: string, listener: (...args: any[]) => void): this;
once(eventName: string, listener: (...args: any[]) => void): this;
removeListener(eventName: string, listener: (...args: any[]) => void): this;
removeAllListeners(eventName: string): this;
_callOnStores(fn: (store: Store) => void): this;
_roleComparator(a: Role, b: Role): number;
}
export {};