import { HostEvent } from '../../types';
import { UIPassthroughArrayResponse, UIPassthroughEvent, HostEventRequest, HostEventResponse, UIPassthroughRequest, UIPassthroughResponse, TriggerPayload, TriggerResponse } from './contracts';
export declare class HostEventClient {
    iFrame: HTMLIFrameElement;
    constructor(iFrame?: HTMLIFrameElement);
    /**
     * A wrapper over process trigger to
     * @param {HostEvent} message Host event to send
     * @param {any} data Data to send with the host event
     * @returns {Promise<any>} - the response from the process trigger
     */
    protected processTrigger(message: HostEvent, data: any): Promise<any>;
    handleHostEventWithParam<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>): Promise<UIPassthroughResponse<UIPassthroughEventT>>;
    hostEventFallback(hostEvent: HostEvent, data: any): Promise<any>;
    /**
     * Setter for the iframe element used for host events
     * @param {HTMLIFrameElement} iFrame - the iframe element to set
     */
    setIframeElement(iFrame: HTMLIFrameElement): void;
    triggerUIPassthroughApi<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>): Promise<UIPassthroughArrayResponse<UIPassthroughEventT>>;
    protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin>): Promise<HostEventResponse<HostEvent.Pin>>;
    protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer>): Promise<any>;
    triggerHostEvent<HostEventT extends HostEvent, PayloadT>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>): Promise<TriggerResponse<PayloadT, HostEventT>>;
}
//# sourceMappingURL=host-event-client.d.ts.map