import { Icon } from './icon'; /** * An object expressing a dropdown action to be shown in the interface * * @see {isDropdownAction} */ export type DropdownAction = { /** * ID of action. Will be the first argument for the * execute function */ id: string; /** * An arbitrary configuration object that will be passed as the `parameters` * property of the second argument of the execute function */ parameters?: Record; /** Label to be shown. Must be unique. */ label: string; /** * Icon to be shown alongside the label. Can be a FontAwesome icon name (ie. * `"address-book"`) or a custom SVG definition. To maintain visual * consistency with the rest of the interface, try to use FontAwesome icons * whenever possible. */ icon: Icon; active?: boolean; alert?: boolean; disabled?: boolean; closeMenuOnClick?: boolean; /** * Actions will be displayed by ascending `rank`. If you want to specify an * explicit value for `rank`, make sure to offer a way for final users to * customize it inside the plugin's settings form, otherwise the hardcoded * value you choose might clash with the one of another plugin! */ rank?: number; }; /** * An object expressing a dropdown submenu containing actions to be shown in the interface * * @see {isDropdownActionGroup} */ export type DropdownActionGroup = { /** Label to be shown. Must be unique. */ label: string; /** * Icon to be shown alongside the label. Can be a FontAwesome icon name (ie. * `"address-book"`) or a custom SVG definition. To maintain visual * consistency with the rest of the interface, try to use FontAwesome icons * whenever possible. */ icon: Icon; actions: DropdownAction[]; /** * Actions will be displayed by ascending `rank`. If you want to specify an * explicit value for `rank`, make sure to offer a way for final users to * customize it inside the plugin's settings form, otherwise the hardcoded * value you choose might clash with the one of another plugin! */ rank?: number; }; export type ItemFormSidebarPanelPlacement = [ 'before' | 'after', 'info' | 'publishedVersion' | 'schedule' | 'links' | 'history' ]; export declare function isDropdownAction(value: unknown): value is DropdownAction; export declare function isDropdownActionGroup(value: unknown): value is DropdownActionGroup; export declare function isDropdownActionOrGroupArray(value: unknown): value is Array;