-- Copyright (c) 2023 BirdeeHub 
-- Licensed under the MIT license 
---@meta
error("Cannot import a meta module")

---@class nixCats.main
---See :h nixCats.flake.outputs.packageDefinitions
---Function form will return vim.tbl_get for the attrpath
---@field cats table|fun(attrpath: string|string[]): any
---See :h nixCats.flake.outputs.settings
---Function form will return vim.tbl_get for the attrpath
---@field settings table|fun(attrpath: string|string[]): any
---See :h nixCats.flake.outputs.packageDefinitions
---Function form will return vim.tbl_get for the attrpath
---@field extra table|fun(attrpath: string|string[]): any
---Contains the final set of plugins added for this package
---Function form will return vim.tbl_get for the attrpath
---@field pawsible table|fun(attrpath: string|string[]): any
---Contains all the defined categories that you COULD enable from nix
---Function form will return vim.tbl_get for the attrpath
---@field petShop table|fun(attrpath: string|string[]): any
---The path to your configuration for the package
---@field configDir string
---Path to the nixCats wrapper script that launches nvim
---Useful for things such as vim-startuptime which must reference the wrapper's actual path
---@field packageBinPath string
---The path to the packpath directory with all your plugins from nix
---@field vimPackDir string
---The path to the nixCats plugin
---@field nixCatsPath string
---See :h nixCats
---This function will return the nearest parent category value, unless the nearest
---parent is a table, in which case that means a different subcategory
---was enabled but this one was not. In that case it returns nil.
---@field get fun(category: string|string[]): any

---See :h nixCats
---This function will return the nearest parent category value, unless the nearest
---parent is a table, in which case that means a different subcategory
---was enabled but this one was not. In that case it returns nil.
---@alias nixCats nixCats.main | fun(category: string|string[]): any
