/**
 * Callbacks returned from {@link useDashboardAsyncRender} hook.
 *
 * @public
 */
export type UseDashboardAsyncRender = {
    /**
     * Callback that requests async rendering of the component.
     */
    onRequestAsyncRender: () => void;
    /**
     * Callback that resolves async rendering of the component.
     */
    onResolveAsyncRender: () => void;
};
/**
 * A React hook that allows you to request and inform the dashboard about the rendering of a component
 * that loads asynchronous data (eg Insight, Kpi, but it can be also any custom widget).
 * By registering and resolving asynchronous data retrieval of the each widget, the dashboard is able to recognize and notify that it is fully rendered.
 * This mechanism is necessary for dashboard exports to PDF to work properly.
 *
 * Mechanism is following:
 * - You must request async rendering for at least 1 component within 5 seconds of the {@link DashboardInitialized} event.
 *   (If you do not register any asynchronous rendering, after 5 seconds the dashboard will announce that it is rendered by dispatching {@link DashboardRenderResolved} event.)
 * - You can request async rendering for any number of components. Requests are valid if the first rule is met
 *   and not all asynchronous renderings have been resolved and the maximum timeout (20min by default) has not elapsed.
 * - The component may again request asynchronous rendering within 5 seconds of resolution. Maximum 3x.
 *   (this is necessary to cover possible re-renders caused by data received from the components themselves, after they are rendered)
 * - Maximum rendering time of the dashboard is 20min - if some asynchronous renderings are not yet resolved at this time, {@link DashboardRenderResolved} event is dispatched anyway.
 *
 * Request async rendering of the component by calling onRequestAsyncRender() callback.
 * Resolve async rendering of the component by calling onResolveAsyncRender() callback.
 *
 * @public
 * @param id - unique identifier of the component
 * @returns callbacks
 */
export declare const useDashboardAsyncRender: (id: string) => UseDashboardAsyncRender;
//# sourceMappingURL=useDashboardAsyncRender.d.ts.map