import type { CancelToken } from "@vertigis/arcgis-extensions/support/Cancellable";
/**
 * Represents a `command`, `event`, or `operation`.
 */
export interface Message {
    /**
     * The name of the command, operation, or event.
     */
    name: string;
}
/**
 * Options that apply to the execution of a message.
 */
export interface MessageExecuteOptions {
    /**
     * Enables cancellation (see Cancellable).
     */
    cancelToken?: CancelToken;
    /**
     * Specify if the message was executed from a trusted source.
     */
    trusted?: boolean;
    /**
     * The XML name of the layout component that initiated the action, if
     * applicable. This will be available in the command context and can be used
     * by message handlers for capturing analytics. Examples: "layer-list",
     * "map", etc.
     */
    analyticsComponentType?: string;
    /**
     * The human-readable name of the layout component that initiated the
     * action, if applicable. This will be available in the command context and
     * can be used by message handlers for capturing analytics. Examples: "Layer
     * List", "Basemap Picker", , "Left Panel", etc.
     */
    analyticsComponentName?: string;
    /**
     * Additional component-specific data indicating such things as the name of
     * an item or area within a component that the user interacted with to
     * trigger the command, if applicable. This will be available in the command
     * context and can be used by message handlers for capturing analytics.
     *
     * Examples:
     *
     * - The name of a basemap selection.
     * - The name of a button.
     * - The name of a context menu item.
     */
    analyticsComponentData?: string | number | boolean | string[];
}
