import { Subscription, UAEventEmitter } from './UAEventEmitter';
import { JsonObject } from './types';
/**
 * Info for a pending embedded content instance.
 */
export interface PendingEmbedded {
    /**
     * The embedded Id.
     */
    embeddedId: string;
    /**
     * The instance Id of this specific pending content.
     */
    instanceId: string;
    /**
     * The priority. Lower numbers are higher priority.
     */
    priority: number;
    /**
     * The extras.
     */
    extras: JsonObject;
}
/**
 * Airship InApp Experiences.
 */
export declare class AirshipInApp {
    private readonly module;
    private readonly eventEmitter;
    private pendingEmbedded;
    private pendingEmbeddedListeners;
    constructor(module: any, eventEmitter: UAEventEmitter);
    /**
     * Gets the pending embedded content info for the given embedded ID.
     * @param embeddedId The embedded ID to check.
     * @returns The pending embedded content info, including instance ID and extras.
     */
    getPendingEmbedded(embeddedId: string): PendingEmbedded[];
    /**
     * Adds a listener that is called whenever the list of pending embedded
     * content changes for the given embedded ID.
     * @param embeddedId The embedded ID to watch.
     * @param listener The listener, called with the current pending list.
     * @returns A subscription that can be used to cancel the listener.
     */
    addPendingEmbeddedListener(embeddedId: string, listener: (pending: PendingEmbedded[]) => void): Subscription;
    /**
     * Adds a listener to listen for if an embedded ID is ready to display or not.
     * @param embeddedId The embedded ID to check.
     * @param listener  The listener.
     * @returns A subscription that can be used to cancel the listener.
     */
    addEmbeddedReadyListener(embeddedId: string, listener: (isReady: boolean) => void): Subscription;
    /**
     * Checks if embedded message is ready for the given ID.
     * @param embeddedId The embedded ID to check.
     * @returns `true` if one is ready, otherwise `false`.
     */
    isEmbeddedReady(embeddedId: string): boolean;
    /**
     * Pauses messages.
     * @param paused `true` to pause, `false` to resume.
     * @returns A promise.
     */
    setPaused(paused: boolean): Promise<void>;
    /**
     * Checks if messages are paused.
     * @returns A promise with the result.
     */
    isPaused(): Promise<boolean>;
    /**
     * Sets the display interval for messages.
     * @param milliseconds Display interval
     * @returns A promise.
     */
    setDisplayInterval(milliseconds: number): Promise<void>;
    /**
     * Gets the display interval.
     * @returns A promise with the result.
     */
    getDisplayInterval(): Promise<number>;
}
//# sourceMappingURL=AirshipInApp.d.ts.map