
/**
 * Create a new instance of the Micro App library.
 *
 * @beta
 */
declare class MicroApp {
    private audience?;
    private id?;
    courier: any;
    private queue;
    private ro;
    private token?;
    constructor({ audience, onError, id }?: MicroAppOptions);
    /**
     * Set up the communication channel with Workgrid.
     * A loading overlay will be displayed until `initialize` is invoked.
     */
    initialize(): void;
    /**
     * Start the resize observer
     */
    private subscribe;
    /**
     * Stop the resize observer
     */
    private unsubscribe;
    /**
     * Set the current height on resize
     */
    private handleResize;
    /**
     * Retrieve a token to validate the user in your API.
     * The token will be a JWT that includes `email`, `workgrid_space_id` and `workgrid_tenant_id`.
     */
    getToken(): Promise<string>;
    /**
     * Update the title of the detail panel. This will let you reflect
     */
    updateTitle(title: string): void;
    /**
     * Show the detail with the given url and optional title.
     * The page shown must also be configured as a micro app, otherwise an error will be thrown.
     */
    showDetail({ url, title }: {
        url: string;
        title?: string;
    }): void;
    /**
     * Hide the detail if it's visible.
     */
    hideDetail(): void;
    /**
     * Wrap the event emitter in a queue that is flushed when the host is ready.
     */
    private emit;
    /**
     * Wrap the event sender in a queue that is flushed when the host is ready.
     */
    send(...args: any[]): Promise<any>;
    /**
     * Tell the host we're ready every 100ms until the message is acknowledged.
     * This fires off two techniques "serial" and "cascade", Android needs serial for now; cascade is superior
     */
    ready(): Promise<any>;
    private serialReady;
    private cascadeReady;
}
export default MicroApp;

/**
 * @beta
 */
export declare interface MicroAppOptions {
    /**
     * The target audience for the user token
     */
    audience?: string;
    /**
     * Custom error handler
     */
    onError?: (...args: any[]) => any;
    /**
     * Custom log group
     */
    id?: string;
}

export { }
