"""
Python module generated from Java source file org.bukkit.loot.LootTable

Java source file obtained from artifact spigot-api version 1.21.4-R0.1-20250303.102353-42

Because this Python module is automatically generated, it may contain errors
and/or code that cannot be parsed. Please report these issues at
https://github.com/magicmq/docs-translator/issues
"""
from java.util import Random
from org.bukkit import Keyed
from org.bukkit.inventory import Inventory
from org.bukkit.inventory import ItemStack
from org.bukkit.loot import *
from typing import Any, Callable, Iterable, Tuple


class LootTable(Keyed):
    """
    LootTables are technical files that represent what items should be in
    naturally generated containers, what items should be dropped when killing a
    mob, or what items can be fished.
    
    See the <a href="https://minecraft.wiki/w/Loot_table">
    Minecraft Wiki</a> for more information.
    """

    def populateLoot(self, random: "Random", context: "LootContext") -> Iterable["ItemStack"]:
        """
        Returns a mutable list of loot generated by this LootTable.

        Arguments
        - random: the random instance to use to generate loot
        - context: context within to populate loot

        Returns
        - a list of ItemStacks
        """
        ...


    def fillInventory(self, inventory: "Inventory", random: "Random", context: "LootContext") -> None:
        """
        Attempt to fill an inventory with this LootTable's loot.

        Arguments
        - inventory: the inventory to fill
        - random: the random instance to use to generate loot
        - context: context within to populate loot
        """
        ...
