/**
* This file was automatically generated by json-schema-to-typescript.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run json-schema-to-typescript to regenerate this file.
*/
/**
 * A version that tells minecraft what type of data format can be expected when reading this file.
 */
type FormatVersion = string;
/**
 * UNDOCUMENTED.
 */
type RecipeIdentifier = string;
type Tag = string;
/**
 * Recipe tags 1.12.0
 */
type Tags = Tag[];
/**
 * Items used as input for the furnace recipe.
 */
type Input = string;
/**
 * Items used as output for the furnace recipe.
 */
type Output = string;
/**
 * Unlock achievement
 */
type Unlock = ({
    context: Context;
    [k: string]: unknown;
} | DItem[]);
/**
 * The context of the achievement to unlock
 */
type Context = string;
type DItem = ({
    item: Item;
    data?: Data;
    [k: string]: unknown;
} | {
    tag: ItemTag;
    [k: string]: unknown;
});
/**
 * The item to unlock
 */
type Item = string;
/**
 * The data of the item to unlock
 */
type Data = number;
/**
 * The item to unlock
 */
type ItemTag = string;
/**
 * Input potion used on the brewing stand.
 */
type Input1 = string;
/**
 * Output potion from mixing the input potion with the reagent on the brewing stand.
 */
type Output1 = string;
/**
 * Item used to mix with the input potion.
 */
type Reagent = string;
/**
 * Input potion used on the brewing stand.
 */
type Input2 = string;
/**
 * Output potion from mixing the input potion with the reagent on the brewing stand.
 */
type Output2 = string;
/**
 * Item used to mix with the input potion.
 */
type Reagent1 = string;
/**
 * Recipe item 1.12.0
 */
type Item1 = (ItemIdentifier | {
    item: ItemIdentifier1;
    data?: ItemDataValue;
    count?: Count;
} | {
    tag: ItemTag1;
    [k: string]: unknown;
});
type ItemIdentifier = string;
type ItemIdentifier1 = string;
type ItemDataValue = number;
type Count = number;
/**
 * The item to unlock
 */
type ItemTag1 = string;
/**
 * UNDOCUMENTED.
 */
type Group = string;
/**
 * Characters that represent a pattern to be defined by keys.
 *
 * @minItems 1
 * @maxItems 3
 */
type Pattern = [Pattern1] | [Pattern1, Pattern1] | [Pattern1, Pattern1, Pattern1];
type Pattern1 = string;
/**
 * Item used as output for the furnace recipe.
 */
type Priority = number;
/**
 * When input items match the pattern then these items are the result.
 */
type Result = (Item1 | Item1[]);
/**
 * Items used as input (without a shape) for the recipe.
 */
type Ingredients = (Item1 | Item1[]);
/**
 * UNDOCUMENTED.
 */
type Group1 = string;
/**
 * Item used as output for the furnace recipe.
 */
type Priority1 = number;
/**
 * When input items match the pattern then these items are the result.
 */
type Result1 = (Item1 | Item1[]);
/**
 * Item used as base for the smithing recipe.
 */
type Base = (Item1 | Item1[]);
/**
 * Item used as addition for the smithing recipe.
 */
type Addition = (Item1 | Item1[]);
/**
 * When input items match the pattern then these items are the result.
 */
type Result2 = (Item1 | Item1[]);
/**
 * Minecraft recipe
 */
export interface Recipe {
    format_version: FormatVersion;
    "minecraft:recipe_furnace"?: FurnaceRecipe;
    "minecraft:recipe_brewing_container"?: BrewingRecipe1120;
    "minecraft:recipe_brewing_mix"?: BrewingRecipe11201;
    "minecraft:recipe_shaped"?: ShapedRecipe1120;
    "minecraft:recipe_shapeless"?: ShapelessRecipe1120;
    "minecraft:recipe_smithing_transform"?: SmithingTransformRecipe1120;
}
/**
 * Represents a furnace recipe for a furnace.'Input` items will burn and transform into items specified in `output`..
 */
interface FurnaceRecipe {
    description: Definition;
    tags?: Tags;
    input?: Input;
    output?: Output;
    unlock?: Unlock;
}
/**
 * Recipe definition 1.12.0
 */
interface Definition {
    identifier?: RecipeIdentifier;
}
/**
 * Represents a Potion Brewing Container Recipe..
 */
interface BrewingRecipe1120 {
    description: Definition;
    tags?: Tags;
    unlock?: Unlock;
    input?: Input1;
    output?: Output1;
    reagent?: Reagent;
}
/**
 * Represents a Potion Brewing Container Recipe..
 */
interface BrewingRecipe11201 {
    description: Definition;
    tags?: Tags;
    unlock?: Unlock;
    input?: Input2;
    output?: Output2;
    reagent?: Reagent1;
}
/**
 * Represents a shaped crafting recipe for a crafting table. The key used in the pattern may be any single character except the `space` character, which is reserved for empty slots in a recipe..
 */
interface ShapedRecipe1120 {
    description: Definition;
    tags?: Tags;
    unlock?: Unlock;
    key?: Key;
    group?: Group;
    pattern?: Pattern;
    priority?: Priority;
    result?: Result;
}
/**
 * Patten key character mapped to item names.
 */
interface Key {
    [k: string]: Item1;
}
/**
 * Represents a shapeless crafting recipe..
 */
interface ShapelessRecipe1120 {
    description: Definition;
    tags?: Tags;
    unlock?: Unlock;
    ingredients?: Ingredients;
    group?: Group1;
    priority?: Priority1;
    result?: Result1;
}
/**
 * Represents a smithing table crafting recipe..
 */
interface SmithingTransformRecipe1120 {
    description: Definition;
    tags?: Tags;
    unlock?: Unlock;
    base?: Base;
    addition?: Addition;
    result?: Result2;
}
export {};
