import { InsightWidgetBuilder, KpiWidgetBuilder, type ValueOrUpdateCallback } from "@gooddata/sdk-backend-base";
import { type IDashboardLayout, type IDashboardLayoutItem, type IDashboardLayoutSection, type IDashboardLayoutSizeByScreenSize, type ObjRef } from "@gooddata/sdk-model";
import { type ILayoutItemPath } from "../../../../types.js";
import { type IDashboardLayoutItemFacade } from "../facade/interfaces.js";
import { type DashboardLayoutItemModifications, type IDashboardLayoutBuilder, type IDashboardLayoutItemBuilder, type IDashboardLayoutSectionBuilder } from "./interfaces.js";
/**
 * @alpha
 */
export declare class DashboardLayoutItemBuilder<TWidget> implements IDashboardLayoutItemBuilder<TWidget> {
    protected setSection: (valueOrUpdateCallback: ValueOrUpdateCallback<IDashboardLayoutSection<TWidget>>) => void;
    protected getItemFacade: () => IDashboardLayoutItemFacade<TWidget>;
    protected itemIndex: number;
    protected constructor(setSection: (valueOrUpdateCallback: ValueOrUpdateCallback<IDashboardLayoutSection<TWidget>>) => void, getItemFacade: () => IDashboardLayoutItemFacade<TWidget>, itemIndex: number);
    /**
     * Creates an instance of DashboardLayoutItemBuilder for particular layout item.
     *
     * @param sectionBuilder - section builder
     * @param itemIndex - item to modify
     */
    static for<TWidget>(sectionBuilder: IDashboardLayoutSectionBuilder<TWidget>, itemIndex: number): IDashboardLayoutItemBuilder<TWidget>;
    size(valueOrUpdateCallback: ValueOrUpdateCallback<IDashboardLayoutSizeByScreenSize>): this;
    widget(valueOrUpdateCallback: ValueOrUpdateCallback<TWidget | undefined>): this;
    setItem(valueOrUpdateCallback: ValueOrUpdateCallback<IDashboardLayoutItem<TWidget>>): this;
    modify(modifications: DashboardLayoutItemModifications<TWidget>): this;
    build(): IDashboardLayoutItem<TWidget>;
    facade(): IDashboardLayoutItemFacade<TWidget>;
    newInsightWidget(insight: ObjRef, create?: (builder: InsightWidgetBuilder) => InsightWidgetBuilder): this;
    modifyInsightWidget(modify: (builder: InsightWidgetBuilder) => InsightWidgetBuilder): this;
    newKpiWidget(measure: ObjRef, create?: (builder: KpiWidgetBuilder) => KpiWidgetBuilder): this;
    modifyKpiWidget(modify: (builder: KpiWidgetBuilder) => KpiWidgetBuilder): this;
    modifyLayoutWidget(modify: (builder: IDashboardLayoutBuilder<TWidget>) => IDashboardLayoutBuilder<TWidget>, dashboardLayoutBuilderConstructor: (layout: IDashboardLayout<TWidget>, layoutPath?: ILayoutItemPath) => IDashboardLayoutBuilder<TWidget>): this;
}
//# sourceMappingURL=item.d.ts.map