import { z } from 'zod';
/**
 * /v2/professions definition
 */
export declare const ProfessionsDTO: z.ZodArray<z.ZodObject<{
    /** The profession id. */
    id: z.ZodString;
    /** The name of the profession. */
    name: z.ZodString;
    /** The profession code for a build template link. */
    code: z.ZodOptional<z.ZodNumber>;
    /** The icon for the profession. */
    icon: z.ZodString;
    /** The large icon for the profession. */
    icon_big: z.ZodString;
    /** The specialization ids. Can be resolved against /v2/specializations. */
    specializations: z.ZodArray<z.ZodNumber>;
    /** List of training details. */
    training: z.ZodArray<z.ZodObject<{
        /** The id of the skill or specialization. Can be resolved against /v2/skills and /v2/specializations. */
        id: z.ZodNumber;
        /** The category for the training object. */
        category: z.ZodEnum<{
            Skills: "Skills";
            Specializations: "Specializations";
            EliteSpecializations: "EliteSpecializations";
        }>;
        /** The name of the skill or specialization indicated by the category and id. */
        name: z.ZodString;
        /** List of skills and traits training details tracks objects. */
        track: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
            /** Whether this is a skill or trait. */
            type: z.ZodLiteral<"Trait">;
            /** The trait id. Can be resolved against /v2/traits. */
            trait_id: z.ZodNumber;
            /** The cost to train this skill or trait. */
            cost: z.ZodNumber;
        }, z.core.$strict>, z.ZodObject<{
            /** Whether this is a skill or trait. */
            type: z.ZodLiteral<"Skill">;
            /** The skill id. Can be resolved against /v2/skills. */
            skill_id: z.ZodNumber;
            /** The cost to train this skill or trait. */
            cost: z.ZodNumber;
        }, z.core.$strict>], "type">>;
    }, z.core.$strict>>;
    /** The weapons available for this profession. */
    weapons: z.ZodRecord<z.ZodEnum<{
        Axe: "Axe";
        Dagger: "Dagger";
        Focus: "Focus";
        Greatsword: "Greatsword";
        Hammer: "Hammer";
        Mace: "Mace";
        Pistol: "Pistol";
        Rifle: "Rifle";
        Scepter: "Scepter";
        Shield: "Shield";
        Speargun: "Speargun";
        Staff: "Staff";
        Sword: "Sword";
        Torch: "Torch";
        Trident: "Trident";
        Warhorn: "Warhorn";
        Longbow: "Longbow";
        Shortbow: "Shortbow";
        Spear: "Spear";
    }>, z.ZodOptional<z.ZodObject<{
        /** Weapon slot flag. */
        flags: z.ZodOptional<z.ZodArray<z.ZodEnum<{
            Mainhand: "Mainhand";
            Offhand: "Offhand";
            TwoHand: "TwoHand";
            Aquatic: "Aquatic";
        }>>>;
        /** The specializations id of the required specialization to use this weapon.
         * Can be resolved against /v2/specializations. Only present if a specialization is required. */
        specialization: z.ZodOptional<z.ZodNumber>;
        /** The list of weapon skills objects. */
        skills: z.ZodArray<z.ZodObject<{
            /** The skill id. Can be resolved against /v2/skills. */
            id: z.ZodNumber;
            /** The skill bar slot that this weapon skill can be used in. */
            slot: z.ZodTemplateLiteral<`Weapon_${number}`>;
            /** The name of the offhand weapon this skill requires to be equipped. This field is usually only present for Thief skills. */
            offhand: z.ZodOptional<z.ZodString>;
            /** The Elementalist attunement that this skill requires. This field is usually only present for Elementalist skills. */
            attunement: z.ZodOptional<z.ZodString>;
            /** The name of the class the skill was stolen from. This only applies to thief stolen skills. */
            source: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
    }, z.core.$strict>>>;
    /** Profession flags. */
    flags: z.ZodArray<z.ZodEnum<{
        NoRacialSkills: "NoRacialSkills";
        NoWeaponSwap: "NoWeaponSwap";
    }>>;
    /** Profession skills. */
    skills: z.ZodArray<z.ZodObject<{
        /** The skill id. */
        id: z.ZodNumber;
        /** The skill slot. */
        slot: z.ZodUnion<readonly [z.ZodEnum<{
            Utility: "Utility";
            Heal: "Heal";
            Elite: "Elite";
        }>, z.ZodTemplateLiteral<`Weapon_${number}`>, z.ZodTemplateLiteral<`Profession_${number}`>, z.ZodTemplateLiteral<`Downed_${number}`>]>;
        /** The skill type. */
        type: z.ZodEnum<{
            Utility: "Utility";
            Heal: "Heal";
            Elite: "Elite";
            Profession: "Profession";
        }>;
        /** The skill source. Present only for stolen thief skills. */
        source: z.ZodOptional<z.ZodString>;
        /** The skill attunement. Present only for elementalist skills. */
        attunement: z.ZodOptional<z.ZodEnum<{
            Fire: "Fire";
            Air: "Air";
            Earth: "Earth";
            Water: "Water";
        }>>;
    }, z.core.$strict>>;
    /** The first number is a skill palette ID obtained from a build template link, the second number is a skill ID.
     * Can be resolved against /v2/skills. */
    skills_by_palette: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
}, z.core.$strict>>;
