import { type IRenderingWorkerConfiguration } from "../commandHandlers/render/types.js";
import { type DashboardContext } from "../types/commonTypes.js";
import { type IDashboardEvent } from "./base.js";
/**
 * This event is emitted as soon as the dashboard component is mounted,
 * and rendering of its content started.
 *
 * @public
 */
export type DashboardRenderRequested = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.RENDER.REQUESTED";
};
/**
 * @public
 */
export declare function renderRequested(ctx: DashboardContext, correlationId?: string): DashboardRenderRequested;
/**
 * Tests whether the provided object is an instance of {@link DashboardRenderRequested}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardRenderRequested: (obj: unknown) => obj is DashboardRenderRequested;
/**
 * Payload of the {@link DashboardAsyncRenderRequested} event.
 * @public
 */
export type DashboardAsyncRenderRequestedPayload = {
    /**
     * Item identifier.
     */
    readonly id: string;
};
/**
 * This event is emitted when a component on the dashboard requests async rendering.
 *
 * @public
 */
export type DashboardAsyncRenderRequested = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.RENDER.ASYNC.REQUESTED";
    readonly payload: {
        /**
         * Item identifier.
         */
        readonly id: string;
    };
};
/**
 * @public
 */
export declare function asyncRenderRequested(id: string, ctx: DashboardContext, correlationId?: string): DashboardAsyncRenderRequested;
/**
 * Tests whether the provided object is an instance of {@link DashboardAsyncRenderRequested}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardAsyncRenderRequested: (obj: unknown) => obj is DashboardAsyncRenderRequested;
/**
 * Payload of the {@link DashboardAsyncRenderResolved} event.
 * @public
 */
export type DashboardAsyncRenderResolvedPayload = {
    /**
     * Item identifier.
     */
    readonly id: string;
};
/**
 * This event is emitted when a component on the dashboard resolves async rendering.
 *
 * @public
 */
export type DashboardAsyncRenderResolved = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.RENDER.ASYNC.RESOLVED";
    readonly payload: DashboardAsyncRenderResolvedPayload;
};
/**
 * @public
 */
export declare function asyncRenderResolved(id: string, ctx: DashboardContext, correlationId?: string): DashboardAsyncRenderResolved;
/**
 * Tests whether the provided object is an instance of {@link DashboardAsyncRenderResolved}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardAsyncRenderResolved: (obj: unknown) => obj is DashboardAsyncRenderResolved;
/**
 * @public
 */
export type DashboardRenderResolved = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.RENDER.RESOLVED";
    readonly payload?: {
        config: Omit<IRenderingWorkerConfiguration, "correlationIdGenerator">;
    };
};
/**
 * This event is emitted as soon as the dashboard component is fully rendered,
 * and asynchronous rendering of each component is complete.
 *
 * @public
 */
export declare function renderResolved(ctx: DashboardContext, correlationId?: string): DashboardRenderResolved;
/**
 * This event is emitted as soon as the dashboard component is fully rendered,
 * and asynchronous rendering of each component is complete.
 *
 * @public
 */
export declare function renderResolvedWithDetails(ctx: DashboardContext, config: Omit<IRenderingWorkerConfiguration, "correlationIdGenerator">, correlationId?: string): DashboardRenderResolved;
/**
 * Tests whether the provided object is an instance of {@link DashboardRenderResolved}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardRenderResolved: (obj: unknown) => obj is DashboardRenderResolved;
//# sourceMappingURL=render.d.ts.map