import { ComponentData } from "./component-data";

/**
 * A provider for overriding the default views of the widget editor.
 */
export declare interface WidgetEditorViewProvider {
    /**
     * Overrides the default view for widget.
     * @param context The context for the editor view.
     * @memberof {WidgetEditorViewProvider}
     */
    overrideView(context: EditorComponentContext): EditorViewComponent;
}

/**
 * Interface for the editor view component.
 */
export declare interface EditorViewComponent {
    /**
     * The component to instantiate for the view.
     * @memberof {EditorViewComponent}
     */
    componentData?: ComponentData;
}

/**
 * Context for the editor view component.
 */
export declare interface EditorComponentContext {
    /**
     * The unique name of the widget. For MVC widget this will be the name of the widget controller without the Controller sufix.
     * @memberof {EditorComponentContext}
     */
    widgetName: string;
}
