import { TokenData } from "@progress/sitefinity-component-framework";

/**
 * Represents a command that can be executed on a DataItem
 */
export declare interface CommandModel {
    /**
     * The title of the command is visualized as text inside the button in the UI.
     */
    title: string;

    /**
     * The category is used to group commands and to determine their placement in the UI.
     *
     * In dialogs the category is used to determine the visual representation of the command.
     * There are 3 out of the box categories:
     * 'cancel' - the rendered button is white
     * 'primary' - the rendered button is green
     * 'delete' - the rendered button is red
     */
    category: string;

    /**
     * The name of the command is used as identifier.
     */
    name: string;

    /**
     * The ordinal number of the command
     */
    ordinal: number;

    /**
     * A custom token for invoking a service to handle the command
     */
    token?: TokenData;
}
