import { Switchboard } from '@superset-ui/switchboard';
/**
 * The function to fetch a guest token from your Host App's backend server.
 * The Host App backend must supply an API endpoint
 * which returns a guest token with appropriate resource access.
 */
export type GuestTokenFetchFn = () => Promise<string>;
export type UiConfigType = {
    hideTitle?: boolean;
    hideTab?: boolean;
    hideChartControls?: boolean;
    filters?: {
        [key: string]: boolean | Record<string, string> | undefined;
        visible?: boolean;
        expanded?: boolean;
        urlParams?: Record<string, string>;
    };
};
export type EmbedDashboardParams = {
    /** The id provided by the embed configuration UI in Superset */
    id: string;
    /** The domain where Superset can be located, with protocol, such as: https://abc123.us1a.preset.io */
    supersetDomain: string;
    /** The html element within which to mount the iframe */
    mountPoint: HTMLElement;
    /** A function to fetch a guest token from the Host App's backend server */
    fetchGuestToken: GuestTokenFetchFn;
    /** The dashboard UI config: hideTitle, hideTab, hideChartControls, filters.visible, filters.expanded **/
    dashboardUiConfig?: UiConfigType;
    /** Enables extra logging */
    debug?: boolean;
};
export type Size = {
    width: number;
    height: number;
};
export type EmbeddedDashboard = {
    getScrollSize: () => Promise<Size>;
    unmount: () => void;
};
/**
 * Embeds a Superset dashboard into the page using an iframe.
 */
export declare function embedDashboard({ id, supersetDomain, mountPoint, fetchGuestToken, dashboardUiConfig, debug }: EmbedDashboardParams): Promise<EmbeddedDashboard>;
export declare function _initComms(window: Window, targetOrigin: string, debug?: boolean): Switchboard;
