const completion: Fig.Spec = {
  name: "satty",
  description: "Modern Screenshot Annotation.",
  options: [
    {
      name: ["-c", "--config"],
      description: "Path to the config file. Otherwise will be read from XDG_CONFIG_DIR/satty/config.toml",
      isRepeatable: true,
      args: {
        name: "config",
        isOptional: true,
      },
    },
    {
      name: ["-f", "--filename"],
      description: "Path to input image or '-' to read from stdin",
      isRepeatable: true,
      args: {
        name: "filename",
      },
    },
    {
      name: "--fullscreen",
      description: "Start Satty in fullscreen mode. Since 0.20.1, takes optional parameter. --fullscreen without parameter is equivalent to --fullscreen current. Mileage may vary depending on compositor",
      isRepeatable: true,
      args: {
        name: "fullscreen",
        isVariadic: true,
        isOptional: true,
        suggestions: [
          "all",
          "current-screen",
        ],
      },
    },
    {
      name: "--resize",
      description: "Resize to coordinates or use smart mode (0.20.1). --resize without parameter is equivalent to --resize smart [possible values: smart, WxH.]",
      isRepeatable: true,
      args: {
        name: "resize",
        isVariadic: true,
        isOptional: true,
      },
    },
    {
      name: ["-o", "--output-filename"],
      description: "Filename to use for saving action or '-' to print to stdout. Omit to disable saving to file. Might contain format specifiers: <https://docs.rs/chrono/latest/chrono/format/strftime/index.html>. Since 0.20.0, can contain tilde (~) for home dir",
      isRepeatable: true,
      args: {
        name: "output_filename",
        isOptional: true,
      },
    },
    {
      name: "--corner-roundness",
      description: "Draw corners of rectangles round if the value is greater than 0 (Defaults to 12) (0 disables rounded corners)",
      isRepeatable: true,
      args: {
        name: "corner_roundness",
        isOptional: true,
      },
    },
    {
      name: ["--initial-tool", "--init-tool"],
      description: "Select the tool on startup",
      isRepeatable: true,
      args: {
        name: "initial_tool",
        isOptional: true,
        suggestions: [
          "pointer",
          "crop",
          "line",
          "arrow",
          "rectangle",
          "ellipse",
          "text",
          "marker",
          "blur",
          "highlight",
          "brush",
        ],
      },
    },
    {
      name: "--copy-command",
      description: "Configure the command to be called on copy, for example `wl-copy`",
      isRepeatable: true,
      args: {
        name: "copy_command",
        isOptional: true,
      },
    },
    {
      name: "--annotation-size-factor",
      description: "Increase or decrease the size of the annotations",
      isRepeatable: true,
      args: {
        name: "annotation_size_factor",
        isOptional: true,
      },
    },
    {
      name: "--actions-on-enter",
      description: "Actions to perform when pressing Enter",
      isRepeatable: true,
      args: {
        name: "actions_on_enter",
        isOptional: true,
        suggestions: [
          "save-to-clipboard",
          "save-to-file",
          "save-to-file-as",
          "copy-filepath-to-clipboard",
          "exit",
        ],
      },
    },
    {
      name: "--actions-on-escape",
      description: "Actions to perform when pressing Escape",
      isRepeatable: true,
      args: {
        name: "actions_on_escape",
        isOptional: true,
        suggestions: [
          "save-to-clipboard",
          "save-to-file",
          "save-to-file-as",
          "copy-filepath-to-clipboard",
          "exit",
        ],
      },
    },
    {
      name: "--actions-on-right-click",
      description: "Actions to perform when hitting the copy Button",
      isRepeatable: true,
      args: {
        name: "actions_on_right_click",
        isOptional: true,
        suggestions: [
          "save-to-clipboard",
          "save-to-file",
          "save-to-file-as",
          "copy-filepath-to-clipboard",
          "exit",
        ],
      },
    },
    {
      name: "--font-family",
      description: "Font family to use for text annotations",
      isRepeatable: true,
      args: {
        name: "font_family",
        isOptional: true,
      },
    },
    {
      name: "--font-style",
      description: "Font style to use for text annotations",
      isRepeatable: true,
      args: {
        name: "font_style",
        isOptional: true,
      },
    },
    {
      name: "--primary-highlighter",
      description: "The primary highlighter to use, secondary is accessible with CTRL",
      isRepeatable: true,
      args: {
        name: "primary_highlighter",
        isOptional: true,
        suggestions: [
          "block",
          "freehand",
        ],
      },
    },
    {
      name: "--brush-smooth-history-size",
      description: "Experimental feature: How many points to use for the brush smoothing algorithm. 0 disables smoothing. The default value is 0 (disabled)",
      isRepeatable: true,
      args: {
        name: "brush_smooth_history_size",
        isOptional: true,
      },
    },
    {
      name: "--zoom-factor",
      description: "Experimental feature (0.20.1): The zoom factor to use for the image. 1.0 means no zoom. defaults to 1.1",
      isRepeatable: true,
      args: {
        name: "zoom_factor",
        isOptional: true,
      },
    },
    {
      name: "--pan-step-size",
      description: "Experimental feature (0.20.1): The pan step size to use when panning with arrow keys. defaults to 50.0",
      isRepeatable: true,
      args: {
        name: "pan_step_size",
        isOptional: true,
      },
    },
    {
      name: "--text-move-length",
      description: "Experimental feature (0.20.1): The length to move the text when using the arrow keys. defaults to 50.0",
      isRepeatable: true,
      args: {
        name: "text_move_length",
        isOptional: true,
      },
    },
    {
      name: "--input-scale",
      description: "Experimental feature (0.20.1): Scale the default window size to fit different displays. Note that this is ignored with explicit resize",
      isRepeatable: true,
      args: {
        name: "input_scale",
        isOptional: true,
      },
    },
    {
      name: "--title",
      description: "Experimental feature (NEXTRELEASE): Set window title",
      isRepeatable: true,
      args: {
        name: "title",
        isOptional: true,
      },
    },
    {
      name: "--app-id",
      description: "Experimental feature (NEXTRELEASE): Set toplevel app_id. Note that this has to match D-Bus well known name format, otherwise GTK does not accept it",
      isRepeatable: true,
      args: {
        name: "app_id",
        isOptional: true,
      },
    },
    {
      name: "--action-on-enter",
      description: "Action to perform when pressing Enter. Preferably use the `actions_on_enter` option instead",
      isRepeatable: true,
      args: {
        name: "action_on_enter",
        isOptional: true,
        suggestions: [
          "save-to-clipboard",
          "save-to-file",
          "save-to-file-as",
          "copy-filepath-to-clipboard",
          "exit",
        ],
      },
    },
    {
      name: "--man",
      description: "Show manpage. Pipe to man -l -",
    },
    {
      name: "--license",
      description: "Show license",
    },
    {
      name: "--floating-hack",
      description: "Try to enforce floating (0.20.1). Mileage may vary depending on compositor",
    },
    {
      name: "--early-exit",
      description: "Exit directly after copy/save action. 0.20.1: This does not apply to \"save as\"",
    },
    {
      name: "--early-exit-save-as",
      description: "Experimental (0.20.1): Exit directly after save as",
    },
    {
      name: "--save-after-copy",
      description: "After copying the screenshot, save it to a file as well Preferably use the `action_on_copy` option instead",
    },
    {
      name: "--auto-copy",
      description: "Automatically copy to clipboard after every annotation change (NEXTRELEASE)",
    },
    {
      name: ["-d", "--default-hide-toolbars"],
      description: "Hide toolbars by default",
    },
    {
      name: "--focus-toggles-toolbars",
      description: "Experimental (since 0.20.0): Whether to toggle toolbars based on focus. Doesn't affect initial state",
    },
    {
      name: "--default-fill-shapes",
      description: "Experimental feature (since 0.20.0): Fill shapes by default",
    },
    {
      name: "--disable-notifications",
      description: "Disable notifications",
    },
    {
      name: "--profile-startup",
      description: "Print profiling",
    },
    {
      name: "--no-window-decoration",
      description: "Disable the window decoration (title bar, borders, etc.) Please note that the compositor has the final say in this. Requires xdg-decoration-unstable-v1",
    },
    {
      name: "--right-click-copy",
      description: "Right click to copy. Preferably use the `action_on_right_click` option instead",
    },
    {
      name: ["-h", "--help"],
      description: "Print help",
    },
    {
      name: ["-V", "--version"],
      description: "Print version",
    },
  ],
};

export default completion;
