///
import { EventEmitter } from 'events';
import { Transport } from '../transport/transport';
import type * as OpenFin from '../OpenFin';
import { BaseEvent, EventHandler } from './events/base';
type ApplicationIdentity = OpenFin.ApplicationIdentity;
type Identity = OpenFin.Identity;
export declare class Base {
wire: Transport;
constructor(wire: Transport);
protected get fin(): OpenFin.Fin;
get me(): Identity;
protected isNodeEnvironment: () => boolean;
protected isOpenFinEnvironment: () => boolean;
protected isBrowserEnvironment: () => boolean;
}
export declare class EmitterBase extends Base {
#private;
private topic;
protected identity: ApplicationIdentity;
constructor(wire: Transport, topic: string, ...additionalAccessors: string[]);
eventNames: () => (string | symbol)[];
emit: (eventType: EventType, payload: Extract, ...args: any[]) => boolean;
private hasEmitter;
private getOrCreateEmitter;
listeners: (type: string | symbol) => Function[];
listenerCount: (type: string | symbol) => number;
protected registerEventListener: (eventType: EmitterEventType, options: OpenFin.SubscriptionOptions, applySubscription: (emitter: EventEmitter) => void, undoSubscription: (emitter: EventEmitter) => void) => Promise;
protected deregisterEventListener: (eventType: EmitterEventType, options?: OpenFin.SubscriptionOptions) => Promise;
on(eventType: EventType, listener: EventHandler, options?: OpenFin.SubscriptionOptions): Promise;
addListener: (eventType: EventType, listener: OpenFin.BaseEvents.EventHandler, options?: OpenFin.SubscriptionOptions) => Promise;
once(eventType: EventType, listener: EventHandler, options?: OpenFin.SubscriptionOptions): Promise;
prependListener(eventType: EventType, listener: EventHandler, options?: OpenFin.SubscriptionOptions): Promise;
prependOnceListener(eventType: EventType, listener: EventHandler, options?: OpenFin.SubscriptionOptions): Promise;
removeListener(eventType: EventType, listener: EventHandler, options?: OpenFin.SubscriptionOptions): Promise;
protected deregisterAllListeners(eventType: EmitterEventType): Promise;
removeAllListeners(eventType?: EmitterEventType): Promise;
private deleteEmitterIfNothingRegistered;
}
export declare class Reply implements Identity {
topic: TOPIC;
type: TYPE;
uuid: string;
name: string;
}
export {};