import { Action, CustomButton } from "../snk-taskbar";
import { PresentationMode } from "../../../lib/@types";
export declare enum TaskbarElement {
  PREVIOUS = "PREVIOUS",
  NEXT = "NEXT",
  REFRESH = "REFRESH",
  UPDATE = "UPDATE",
  CLONE = "CLONE",
  REMOVE = "REMOVE",
  INSERT = "INSERT",
  CANCEL = "CANCEL",
  SAVE = "SAVE",
  GRID_MODE = "GRID_MODE",
  FORM_MODE = "FORM_MODE",
  MORE_OPTIONS = "MORE_OPTIONS",
  DIVIDER = "DIVIDER",
  SPACER = "SPACER",
  CONFIGURATOR = "CONFIGURATOR",
  DATA_EXPORTER = "DATA_EXPORTER",
  ATTACH = "ATTACH",
  ACTIONS_BUTTON = "ACTIONS_BUTTON",
  UPDATE_MULTIPLE = "UPDATE_MULTIPLE"
}
export declare enum AuthorizationElements {
  UPDATE = "UPDATE",
  CLONE = "CLONE",
  REMOVE = "REMOVE",
  INSERT = "INSERT",
  CONFIGURATOR = "CONFIGURATOR"
}
export declare enum VisibleWhenForbidden {
  CONFIGURATOR = "CONFIGURATOR"
}
interface TaskbarCustomElement {
  def: CustomButton;
  className: string | {
    [className: string]: boolean;
  };
  dataElementId: string;
  action: (name: string) => void;
  isEnabled: (name: string) => boolean;
  size?: "small" | "medium" | "large";
}
export declare const buildCustomButton: ({ def, className, dataElementId, action, isEnabled, size }: TaskbarCustomElement) => HTMLElement;
interface TaskbarElementDefinition {
  element: TaskbarElement;
  className: string | {
    [className: string]: boolean;
  };
  dataElementId: string;
  getTitle: (name: TaskbarElement) => string;
  action: (name: string) => void;
  isEnabled: (name: string) => boolean;
  actions: Array<Action>;
  dataExporterStoreKey: string;
  presentationMode: PresentationMode;
  variant?: "primary" | "secondary" | "tertiary";
  size?: "small" | "medium" | "large";
}
export declare const buildElem: ({ element, className, dataElementId, getTitle, action, isEnabled, actions, dataExporterStoreKey, presentationMode, variant, size }: TaskbarElementDefinition) => HTMLElement;
export {};
