import { z } from 'zod';
export declare const AttributeAdjust: z.ZodObject<{
    type: z.ZodLiteral<"AttributeAdjust">;
    /** The amount target gets adjusted, based on a level 80 character at base stats. */
    value: z.ZodNumber;
    /** The attribute this fact adjusts. Note that a value of Healing indicates the fact is a heal skill, and Ferocity is encoded at CritDamage. */
    target: z.ZodString;
}, z.core.$strict>;
export declare const Buff: z.ZodObject<{
    type: z.ZodLiteral<"Buff">;
    /** The boon, condition, or effect referred to by the fact. */
    status: z.ZodString;
    /** The description of the status effect. */
    description: z.ZodOptional<z.ZodString>;
    /** The number of stacks applied. */
    apply_count: z.ZodOptional<z.ZodNumber>;
    /** The duration of the effect in seconds. Note that some facts of this type are just used to display
     * the buff icon with text; in this case, duration is usually 0, or omitted entirely. */
    duration: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>;
export declare const BuffArray: z.ZodObject<{
    type: z.ZodLiteral<"BuffArray">;
}, z.core.$strict>;
export declare const ComboField: z.ZodObject<{
    type: z.ZodLiteral<"ComboField">;
    /** The type of field. */
    field_type: z.ZodEnum<{
        Light: "Light";
        Fire: "Fire";
        Ice: "Ice";
        Lightning: "Lightning";
        Air: "Air";
        Water: "Water";
        Dark: "Dark";
        Poison: "Poison";
        Smoke: "Smoke";
        Ethereal: "Ethereal";
    }>;
}, z.core.$strict>;
export declare const Finisher: z.ZodObject<{
    type: z.ZodLiteral<"ComboFinisher">;
    /** The type of finisher. */
    finisher_type: z.ZodEnum<{
        Blast: "Blast";
        Leap: "Leap";
        Projectile: "Projectile";
        Whirl: "Whirl";
    }>;
    /** The percent chance that the finisher will trigger. */
    percent: z.ZodNumber;
}, z.core.$strict>;
export declare const Damage: z.ZodObject<{
    type: z.ZodLiteral<"Damage">;
    /** The amount of times the damage hits. */
    hit_count: z.ZodNumber;
    /** Indicates the damage multiplier value of that skill. */
    dmg_multiplier: z.ZodNumber;
}, z.core.$strict>;
export declare const Distance: z.ZodObject<{
    type: z.ZodLiteral<"Distance">;
    /** The distance value. */
    distance: z.ZodNumber;
}, z.core.$strict>;
export declare const Duration: z.ZodObject<{
    type: z.ZodLiteral<"Duration">;
    /** The duration in seconds. */
    duration: z.ZodNumber;
}, z.core.$strict>;
export declare const Heal: z.ZodObject<{
    type: z.ZodLiteral<"Heal">;
    /** The number of times the heal skill is applied. */
    hit_count: z.ZodNumber;
}, z.core.$strict>;
export declare const HealingAdjust: z.ZodObject<{
    type: z.ZodLiteral<"HealingAdjust">;
    /** The number of times the heal value is applied. */
    hit_count: z.ZodNumber;
}, z.core.$strict>;
export declare const NoData: z.ZodObject<{
    /** This fact is usually used to display the Combat Only fact, but it can be used elsewhere. */
    type: z.ZodLiteral<"NoData">;
}, z.core.$strict>;
export declare const NumberType: z.ZodObject<{
    type: z.ZodLiteral<"Number">;
    /** The number value as referenced by text. */
    value: z.ZodNumber;
}, z.core.$strict>;
export declare const Percent: z.ZodObject<{
    type: z.ZodLiteral<"Percent">;
    /** The percentage value as referenced by text. */
    percent: z.ZodNumber;
}, z.core.$strict>;
export declare const PrefixedBuff: z.ZodObject<{
    type: z.ZodLiteral<"PrefixedBuff">;
    /** The boon, condition, or effect referred to by the fact. */
    status: z.ZodOptional<z.ZodString>;
    /** The description of the status effect. */
    description: z.ZodOptional<z.ZodString>;
    /** The number of stacks applied. */
    apply_count: z.ZodNumber;
    /** The duration of the effect in seconds. Note that some facts of this type are just used to display
     * the buff icon with text; in this case, duration is usually 0, or omitted entirely. */
    duration: z.ZodNumber;
    /** Buff prefix. */
    prefix: z.ZodObject<{
        /** Title of the prefix type. */
        text: z.ZodString;
        /** Buff icon. */
        icon: z.ZodURL;
        /** Title of the buff. */
        status: z.ZodOptional<z.ZodString>;
        /** Description of the buff. */
        description: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
}, z.core.$strict>;
export declare const Radius: z.ZodObject<{
    type: z.ZodLiteral<"Radius">;
    /** The radius value. */
    distance: z.ZodNumber;
}, z.core.$strict>;
export declare const Range: z.ZodObject<{
    type: z.ZodLiteral<"Range">;
    /** The range of the trait/skill. */
    value: z.ZodNumber;
}, z.core.$strict>;
export declare const Recharge: z.ZodObject<{
    type: z.ZodLiteral<"Recharge">;
    /** The recharge time in seconds. */
    value: z.ZodNumber;
}, z.core.$strict>;
export declare const StunBreak: z.ZodObject<{
    type: z.ZodLiteral<"StunBreak">;
    /** If present, always true. */
    value: z.ZodLiteral<true>;
}, z.core.$strict>;
export declare const Time: z.ZodObject<{
    type: z.ZodLiteral<"Time">;
    /** The time value in seconds. */
    duration: z.ZodNumber;
}, z.core.$strict>;
export declare const Unblockable: z.ZodObject<{
    type: z.ZodLiteral<"Unblockable">;
    /** If present, always true. */
    value: z.ZodLiteral<true>;
}, z.core.$strict>;
/**
 * /v2/skills definition
 *
 * NOTE: This is mess, and there are a ton of optional fields.
 * A lot of optional types are impossible to define conditionally.
 * You're on your own.
 * Refer to this page for details: https://wiki.guildwars2.com/wiki/API:2/skills
 */
export declare const SkillsDTO: z.ZodArray<z.ZodObject<{
    /** The skill id. */
    id: z.ZodNumber;
    /** The skill name. */
    name: z.ZodString;
    /** The skill description. */
    description: z.ZodString;
    /** A URL to an icon of the skill. */
    icon: z.ZodString;
    /** The chat link. */
    chat_link: z.ZodString;
    /** The skill type. */
    type: z.ZodEnum<{
        Weapon: "Weapon";
        Utility: "Utility";
        Heal: "Heal";
        Elite: "Elite";
        Profession: "Profession";
        Bundle: "Bundle";
        Monster: "Monster";
        Pet: "Pet";
        Toolbelt: "Toolbelt";
        Transform: "Transform";
    }>;
    /** Indicates what weapon the skill is on. Can also be None if not applicable. */
    weapon_type: z.ZodUnion<[z.ZodString, z.ZodLiteral<"None">]>;
    /** An array of strings indicating which profession(s) can use this skill. */
    professions: z.ZodArray<z.ZodString>;
    /** A string indicating where this skill fits into. */
    slot: z.ZodUnion<readonly [z.ZodTemplateLiteral<`Downed_${number}`>, z.ZodTemplateLiteral<`Profession_${number}`>, z.ZodTemplateLiteral<`Weapon_${number}`>, z.ZodLiteral<"Elite">, z.ZodLiteral<"Pet">, z.ZodLiteral<"Utility">]>;
    /** An array of skill fact objects describing the skill's effect. */
    facts: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"AttributeAdjust">;
        value: z.ZodNumber;
        target: z.ZodString;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Buff">;
        status: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        apply_count: z.ZodOptional<z.ZodNumber>;
        duration: z.ZodOptional<z.ZodNumber>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"BuffArray">;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"ComboField">;
        field_type: z.ZodEnum<{
            Light: "Light";
            Fire: "Fire";
            Ice: "Ice";
            Lightning: "Lightning";
            Air: "Air";
            Water: "Water";
            Dark: "Dark";
            Poison: "Poison";
            Smoke: "Smoke";
            Ethereal: "Ethereal";
        }>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"ComboFinisher">;
        finisher_type: z.ZodEnum<{
            Blast: "Blast";
            Leap: "Leap";
            Projectile: "Projectile";
            Whirl: "Whirl";
        }>;
        percent: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Damage">;
        hit_count: z.ZodNumber;
        dmg_multiplier: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Distance">;
        distance: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Duration">;
        duration: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Heal">;
        hit_count: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"HealingAdjust">;
        hit_count: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"NoData">;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Number">;
        value: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Percent">;
        percent: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"PrefixedBuff">;
        status: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        apply_count: z.ZodNumber;
        duration: z.ZodNumber;
        prefix: z.ZodObject<{
            /** Title of the prefix type. */
            text: z.ZodString;
            /** Buff icon. */
            icon: z.ZodURL;
            /** Title of the buff. */
            status: z.ZodOptional<z.ZodString>;
            /** Description of the buff. */
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Radius">;
        distance: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Range">;
        value: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Recharge">;
        value: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"StunBreak">;
        value: z.ZodLiteral<true>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Time">;
        duration: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Unblockable">;
        value: z.ZodLiteral<true>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>, z.ZodObject<{
        /** An arbitrary localized string describing the fact. */
        text: z.ZodString;
        /** A URL to the icon shown with the fact. Not included with all facts. */
        icon: z.ZodOptional<z.ZodURL>;
    }, z.core.$strict>]>>>;
    /** An array of skill fact objects that may apply to the skill, dependent on the player's trait choices. */
    traited_facts: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
        type: z.ZodLiteral<"AttributeAdjust">;
        value: z.ZodNumber;
        target: z.ZodString;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Buff">;
        status: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        apply_count: z.ZodOptional<z.ZodNumber>;
        duration: z.ZodOptional<z.ZodNumber>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"BuffArray">;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"ComboField">;
        field_type: z.ZodEnum<{
            Light: "Light";
            Fire: "Fire";
            Ice: "Ice";
            Lightning: "Lightning";
            Air: "Air";
            Water: "Water";
            Dark: "Dark";
            Poison: "Poison";
            Smoke: "Smoke";
            Ethereal: "Ethereal";
        }>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"ComboFinisher">;
        finisher_type: z.ZodEnum<{
            Blast: "Blast";
            Leap: "Leap";
            Projectile: "Projectile";
            Whirl: "Whirl";
        }>;
        percent: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Damage">;
        hit_count: z.ZodNumber;
        dmg_multiplier: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Distance">;
        distance: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Duration">;
        duration: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Heal">;
        hit_count: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"HealingAdjust">;
        hit_count: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"NoData">;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Number">;
        value: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Percent">;
        percent: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"PrefixedBuff">;
        status: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        apply_count: z.ZodNumber;
        duration: z.ZodNumber;
        prefix: z.ZodObject<{
            /** Title of the prefix type. */
            text: z.ZodString;
            /** Buff icon. */
            icon: z.ZodURL;
            /** Title of the buff. */
            status: z.ZodOptional<z.ZodString>;
            /** Description of the buff. */
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Radius">;
        distance: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Range">;
        value: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Recharge">;
        value: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"StunBreak">;
        value: z.ZodLiteral<true>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Time">;
        duration: z.ZodNumber;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"Unblockable">;
        value: z.ZodLiteral<true>;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>, z.ZodObject<{
        /** An arbitrary localized string describing the fact. */
        text: z.ZodString;
        /** A URL to the icon shown with the fact. Not included with all facts. */
        icon: z.ZodOptional<z.ZodURL>;
        /** Specifies which trait has to be selected in order for this fact to take effect. */
        requires_trait: z.ZodNumber;
        /** This specifies the array index of the facts object it will override, if the trait specified in requires_trait is selected.
         * If this field is omitted, then the fact contained within this object is to be appended to the existing facts array. */
        overrides: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>]>>>;
    /** An array of categories the skill falls under. Mostly used for organizational purposes. */
    categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
    /** Used for Elementalist weapon skills, indicates what attunement this skill falls under. */
    attunement: z.ZodOptional<z.ZodEnum<{
        Fire: "Fire";
        Air: "Air";
        Earth: "Earth";
        Water: "Water";
    }>>;
    /** Used for Revenant, Warrior, and Druid skills to indicate their energy cost. */
    cost: z.ZodOptional<z.ZodNumber>;
    /** Indicates what off-hand must be equipped for this dual-wield skill to appear. */
    dual_wield: z.ZodOptional<z.ZodString>;
    /** Used for skills that "flip over" into a new skill in the same slot to indicate what skill they flip to, such as Engineer toolkits or Herald facets. */
    flip_skill: z.ZodOptional<z.ZodNumber>;
    /** Indicates the Initiative cost for thief skills. */
    initiative: z.ZodOptional<z.ZodNumber>;
    /** Indicates the next skill in the chain, if applicable. */
    next_chain: z.ZodOptional<z.ZodNumber>;
    /** Indicates the previous skill in the chain, if applicable. */
    prev_chain: z.ZodOptional<z.ZodNumber>;
    /** Used to indicate that the skill will transform the player, replacing their skills with the skills listed in the array. */
    transform_skills: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
    /** Used to indicate that the skill will replace the player's skills with the skills listed in the array. */
    bundle_skills: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
    /** Used for Engineer utility skills to indicate their associated toolbelt skill. */
    toolbelt_skill: z.ZodOptional<z.ZodNumber>;
    /** Used to indicate usage limitations, more than one value can be set. */
    flags: z.ZodArray<z.ZodEnum<{
        NoUnderwater: "NoUnderwater";
        GroundTargeted: "GroundTargeted";
    }>>;
}, z.core.$strict>>;
