import { EditContextType } from "../client/editContext";
import { Command, CommandContext, CommandData } from "./commands";
import { Component, FieldDescriptor, ItemDescriptor, Placeholder } from "../pageModel";
export type ComponentCommandData = CommandData & {
    components: Component[];
};
export type ComponentCommandContext = CommandContext<ComponentCommandData>;
export type ComponentCommandProviderSurface = "componentTree" | "contextMenu" | "editFrame" | "menu";
export type ComponentCommandProviderContext = {
    surface?: ComponentCommandProviderSurface;
    pageItem?: ItemDescriptor;
    language?: string;
    targetComponent?: Component;
    /** Field under the pointer for context-menu invocations (e.g. bridge right-click). */
    targetField?: FieldDescriptor;
};
export type ComponentCommandVisibilityScope = "editFrame" | "menu" | "contextMenu" | "componentTree";
export type ComponentCommand = Command<ComponentCommandData> & {
    visibilityScopes: ComponentCommandVisibilityScope[];
};
export declare function getComponentCommands(entities: (Placeholder | Component)[], editContext: EditContextType, providerContext?: ComponentCommandProviderContext): Promise<ComponentCommand[]>;
export declare function openRenderingItemComponentCommandProvider(components: Component[], editContext: EditContextType, providerContext?: ComponentCommandProviderContext): ComponentCommand[];
