import type * as OpenFin from '../../OpenFin';
import { EmitterBase } from '../base';
import { Transport } from '../../transport/transport';
type FrameEvents = OpenFin.FrameEvent;
/**
* @classdesc
* An iframe represents an embedded HTML page within a parent HTML page. Because this embedded page
* has its own DOM and global JS context (which may or may not be linked to that of the parent depending
* on if it is considered out of the root domain or not), it represents a unique endpoint as an OpenFin
* connection. Iframes may be generated dynamically, or be present on initial page load and each non-CORS
* iframe has the OpenFin API injected by default. It is possible to opt into cross-origin iframes having
* the API by setting api.iframe.crossOriginInjection to true in a window's options. To block all iframes
* from getting the API injected you can set api.frame.sameOriginInjection
* to false (see Window~options).
*
* To be able to directly address this context for eventing and messaging purposes, it needs a
* unique uuid name pairing. For OpenFin applications and windows this is provided via a configuration
* object in the form of a manifest URL or options object, but there is no configuration object for iframes.
* Just as a call to window.open outside of our Window API returns a new window with a random GUID assigned
* for the name, each iframe that has the API injected will be assigned a GUID as its name, the UUID will be
* the same as the parent window's.
*
* The fin.Frame namespace represents a way to interact with `iframes` and facilitates the discovery of current context
* (iframe or main window) as well as the ability to listen for frame-specific events.
* @class
* @alias Frame
* @hideconstructor
*/
export declare class _Frame extends EmitterBase {
identity: OpenFin.Identity;
constructor(wire: Transport, identity: OpenFin.Identity);
/**
* Adds the listener function to the end of the listeners array for the specified event type.
* @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 Frame
* @instance
* @tutorial Frame.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 Frame
* @instance
* @tutorial Frame.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 Frame
* @instance
* @tutorial Frame.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 Frame
* @instance
* @tutorial Frame.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 Frame
* @instance
* @tutorial Frame.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 Frame
* @instance
* @tutorial Frame.EventEmitter
*/
/**
* Removes all listeners, or those of the specified event.
* @param { string | symbol } [eventType] - The type of the event.
* @return {Promise.}
* @function removeAllListeners
* @memberof Frame
* @instance
* @tutorial Frame.EventEmitter
*/
/**
* Returns a frame info object for the represented frame
* @return {Promise.}
* @tutorial Frame.getInfo
*/
getInfo(): Promise;
/**
* Returns a frame info object representing the window that the referenced iframe is
* currently embedded in
* @return {Promise.}
* @tutorial Frame.getParentWindow
*/
getParentWindow(): Promise;
}
export {};