import { ILayoutItemDelegator, IMessageBusTopicSubscription, LayoutItem, Section } from "@omnia/fx-models";
import { BlockSettingsProvider } from "./BlockSettingsProvider";
export interface SectionOverride {
    originalSection: Section;
    delegatedSection: Section;
    blockSettingsProvider: BlockSettingsProvider;
}
export declare abstract class LayoutItemDelegator implements ILayoutItemDelegator {
    abstract onStateChanged: IMessageBusTopicSubscription<void>;
    abstract isConfigured(layout: LayoutItem): boolean;
    abstract isDelegated(layout: LayoutItem): boolean;
    abstract isOverridable(layout: LayoutItem): boolean;
    abstract set(originalLayout: LayoutItem, delegatedLayout: LayoutItem): boolean;
    abstract get(originalLayout: LayoutItem, createDefault: () => LayoutItem): LayoutItem;
    abstract allowToViewSettings(): boolean;
}
