/**
 * @author Martin Karkowski
 * @email m.karkowski@zema.de
 * @create date 2022-01-06 07:15:22
 * @modify date 2022-01-06 09:03:30
 * @desc [description]
 */
import { ILogger } from "../../logger/index.browser";
import { ICommunicationBridge, IDataPubSubSystem, INopeConnectivityManager, INopeCore, INopeDispatcherOptions, INopeEventEmitter, INopeInstanceManager, INopeObservable, INopeRpcManager, IPubSubSystem } from "../../types/nope";
export declare class NopeCore implements INopeCore {
    options: INopeDispatcherOptions;
    protected generateEmitter: <T>() => INopeEventEmitter<T>;
    protected generateObservable: <T>() => INopeObservable<T>;
    readonly id: string;
    protected _logger: ILogger;
    ready: INopeObservable<boolean>;
    readonly communicator: ICommunicationBridge;
    readonly eventDistributor: IPubSubSystem;
    readonly dataDistributor: IDataPubSubSystem;
    readonly connectivityManager: INopeConnectivityManager;
    readonly rpcManager: INopeRpcManager;
    readonly instanceManager: INopeInstanceManager;
    constructor(options: INopeDispatcherOptions, generateEmitter: <T>() => INopeEventEmitter<T>, generateObservable: <T>() => INopeObservable<T>, id?: string);
    dispose(): Promise<void>;
    disposing: boolean;
    toDescription(): {
        ready: boolean;
        bridge: {
            connected: boolean;
            layers: {
                forwardData: boolean;
                receivesOwnMessages: boolean;
                id: string;
                considerConnection: boolean;
            }[];
        };
        eventDistributor: {
            publishers: {
                name: string;
                schema: import("../../types/nope").INopeDescriptor;
            }[];
            subscribers: {
                name: string;
                schema: import("../../types/nope").INopeDescriptor;
            }[];
        };
        dataDistributor: {
            publishers: {
                name: string;
                schema: import("../../types/nope").INopeDescriptor;
            }[];
            subscribers: {
                name: string;
                schema: import("../../types/nope").INopeDescriptor;
            }[];
            data: any;
        };
        connectivityManager: {
            dispatchers: string[];
        };
        rpcManager: {
            services: {
                all: import("../../types/nope").IServiceOptions<any>[];
                internal: {
                    options: import("../../types/nope").IServiceOptions<any>;
                    func: (...args: any[]) => Promise<any>;
                }[];
            };
            task: {
                executing: string[];
                requested: {
                    id: string;
                    service: string;
                    target: string;
                    timeout: any;
                }[];
            };
        };
        instanceManager: {
            constructors: {
                all: string[];
                internal: string[];
            };
            instances: {
                all: import("../../types/nope").INopeModuleDescription[];
                internal: string[];
            };
        };
        id: string;
        timestamp: number;
        connectedSince: number;
        status: import("../../types/nope").ENopeDispatcherStatus;
        isMaster: boolean;
        isMasterForced: boolean;
        env: string;
        version: string;
        host: import("../../types/nope").IHost;
        pid: string | number;
        plugins: string[];
        isDebugging?: boolean;
    };
}
