import type * as OpenFin from '../../OpenFin';
import { EmitterBase } from '../base';
import { Transport } from '../../transport/transport';
/**
* @classdesc An ExternalApplication object representing native language adapter connections to the runtime. Allows
* the developer to listen to application events.
* Discovery of connections is provided by getAllExternalApplications.
*
* Processes that can be wrapped as `ExternalApplication`s include the following:
* - Processes which have connected to an OpenFin runtime via an adapter
* - Processes started via `System.launchExternalApplication`
* - Processes monitored via `System.monitorExternalProcess`
* @class
* @hideconstructor
*/
export declare class ExternalApplication extends EmitterBase {
identity: OpenFin.ApplicationIdentity;
constructor(wire: Transport, identity: OpenFin.ApplicationIdentity);
/**
* Adds a listener to the end of the listeners array for the specified event.
* @param { string | symbol } eventType - The type of the event.
* @param { Function } listener - Called whenever an event of the specified type occurs.
* @param { SubOptions } [options] - Option to support event timestamps.
* @return {Promise.}
* @function addListener
* @memberof ExternalApplication
* @instance
* @tutorial ExternalApplication.EventEmitter
*/
/**
* Adds a listener to the end of the listeners array for the specified event.
* @param { string | symbol } eventType - The type of the event.
* @param { Function } listener - Called whenever an event of the specified type occurs.
* @param { SubOptions } [options] - Option to support event timestamps.
* @return {Promise.}
* @function on
* @memberof ExternalApplication
* @instance
* @tutorial ExternalApplication.EventEmitter
*/
/**
* Adds a one time listener for the event. The listener is invoked only the first time the event is fired, after which it is removed.
* @param { string | symbol } eventType - The type of the event.
* @param { Function } listener - The callback function.
* @param { SubOptions } [options] - Option to support event timestamps.
* @return {Promise.}
* @function once
* @memberof ExternalApplication
* @instance
* @tutorial ExternalApplication.EventEmitter
*/
/**
* Adds a listener to the beginning of the listeners array for the specified event.
* @param { string | symbol } eventType - The type of the event.
* @param { Function } listener - The callback function.
* @param { SubOptions } [options] - Option to support event timestamps.
* @return {Promise.}
* @function prependListener
* @memberof ExternalApplication
* @instance
* @tutorial ExternalApplication.EventEmitter
*/
/**
* Adds a one time listener for the event. The listener is invoked only the first time the event is fired, after which it is removed.
* The listener is added to the beginning of the listeners array.
* @param { string | symbol } eventType - The type of the event.
* @param { Function } listener - The callback function.
* @param { SubOptions } [options] - Option to support event timestamps.
* @return {Promise.}
* @function prependOnceListener
* @memberof ExternalApplication
* @instance
* @tutorial ExternalApplication.EventEmitter
*/
/**
* Remove a listener from the listener array for the specified event.
* Caution: Calling this method changes the array indices in the listener array behind the listener.
* @param { string | symbol } eventType - The type of the event.
* @param { Function } listener - The callback function.
* @param { SubOptions } [options] - Option to support event timestamps.
* @return {Promise.}
* @function removeListener
* @memberof ExternalApplication
* @instance
* @tutorial ExternalApplication.EventEmitter
*/
/**
* Removes all listeners, or those of the specified event.
* @param { string | symbol } [eventType] - The type of the event.
* @return {Promise.}
* @function removeAllListeners
* @memberof ExternalApplication
* @instance
* @tutorial ExternalApplication.EventEmitter
*/
/**
* Retrieves information about the external application.
* @return {Promise.}
* @tutorial ExternalApplication.getInfo
*/
getInfo(): Promise;
}