import { ApiBase } from '../../base/apiBase';
/**
 * /v2/characters Api
 */
export declare class CharactersApi extends ApiBase {
    /**
     * Returns information about characters attached to a specific account.
     */
    get(): Promise<string[]>;
    /**
     * Returns information about the backstory of a character attached to a specific account.
     *
     * @param id - Character name
     */
    getBackstory(id: string): Promise<{
        backstory: string[];
    }>;
    /**
     * Returns information about the build template tabs of a character.
     *
     * @param id - Character name
     * @param tabs - Optional tab index. If the index is invalid, all tabs will be returned
     */
    getBuildTabs(id: string, tabs?: number[] | 'all'): Promise<{
        tab: number;
        is_active: boolean;
        build: {
            name: string;
            profession: string;
            specializations: {
                id: number | null;
                traits: (number | null)[];
            }[];
            skills: {
                heal: number | null;
                elite: number | null;
                utilities?: (number | null)[] | undefined;
            };
            aquatic_skills: {
                heal: number | null;
                elite: number | null;
                utilities?: (number | null)[] | undefined;
            };
            legends?: (string | null)[] | undefined;
            aquatic_legends?: (string | null)[] | undefined;
            pets?: {
                terrestrial: number[];
                aquatic: number[];
            } | undefined;
        };
    }[]>;
    /**
     * Returns core information about a character attached to a specific account.
     *
     * @param id - Character name
     */
    getCore(id: string): Promise<{
        name: string;
        race: "Asura" | "Charr" | "Human" | "Norn" | "Sylvari";
        gender: "Male" | "Female";
        profession: "Elementalist" | "Engineer" | "Guardian" | "Mesmer" | "Necromancer" | "Ranger" | "Revenant" | "Thief" | "Warrior";
        level: number;
        guild: string | null;
        age: number;
        created: string;
        deaths: number;
        title?: number | undefined;
    }>;
    /**
     * Returns information about the crafting disciplines available to a character attached to a specific account.
     *
     * @param id - Character name
     */
    getCrafting(id: string): Promise<{
        crafting: {
            discipline: "Armorsmith" | "Artificer" | "Chef" | "Huntsman" | "Jeweler" | "Leatherworker" | "Scribe" | "Tailor" | "Weaponsmith";
            rating: number;
            active: boolean;
        }[];
    }>;
    /**
     * Returns equipment of a character attached to a specific account.
     *
     * @param id - Character name
     */
    getEquipment(id: string): Promise<{
        equipment: ({
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        } | {
            binding: "Account";
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        } | {
            binding: "Character";
            bound_to: string;
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        })[];
    }>;
    /**
     * Returns information about an accounts equipment template tabs.
     *
     * @param id - Character name
     * @param tabs - Optional equipment tab number.
     */
    getEquipmentTabs(id: string, tabs?: number[] | 'all'): Promise<{
        tab: number;
        name: string;
        is_active: boolean;
        equipment: ({
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        } | {
            binding: "Account";
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        } | {
            binding: "Character";
            bound_to: string;
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        })[];
        equipment_pvp: {
            amulet: number | null;
            rune: number | null;
            sigils: (number | null)[];
        };
    }[]>;
    /**
     * Returns the active equipment tab of a character attached to a specific account.
     *
     * @param id - Character name
     */
    getActiveEquipmentTab(id: string): Promise<{
        tab: number;
        name: string;
        is_active: boolean;
        equipment: ({
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        } | {
            binding: "Account";
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        } | {
            binding: "Character";
            bound_to: string;
            id: number;
            slot?: "HelmAquatic" | "Backpack" | "Coat" | "Boots" | "Gloves" | "Helm" | "Leggings" | "Shoulders" | "Accessory1" | "Accessory2" | "Ring1" | "Ring2" | "Amulet" | "Relic" | "WeaponAquaticA" | "WeaponAquaticB" | "WeaponA1" | "WeaponA2" | "WeaponB1" | "WeaponB2" | "Sickle" | "Axe" | "Pick" | "PowerCore" | "FishingLure" | "FishingBait" | "FishingRod" | "SensoryArray" | "ServiceChip" | undefined;
            infusions?: number[] | undefined;
            upgrades?: number[] | undefined;
            skin?: number | undefined;
            stats?: {
                id: number;
                attributes: {
                    Power?: number | undefined;
                    Precision?: number | undefined;
                    CritDamage?: number | undefined;
                    Toughness?: number | undefined;
                    Vitality?: number | undefined;
                    ConditionDamage?: number | undefined;
                    ConditionDuration?: number | undefined;
                    Healing?: number | undefined;
                    BoonDuration?: number | undefined;
                };
            } | undefined;
            location?: "Equipped" | "Armory" | "EquippedFromLegendaryArmory" | "LegendaryArmory" | undefined;
            tabs?: number[] | undefined;
            charges?: number | undefined;
            dyes?: (number | null)[] | undefined;
        })[];
        equipment_pvp: {
            amulet: number | null;
            rune: number | null;
            sigils: (number | null)[];
        };
    }>;
    /**
     * Returns information about the hero points obtained by a character attached to a specific account.
     * NOTE: This api does not currently return a lot of hero point values.
     * Check the list here for details https://wiki.guildwars2.com/wiki/API:2/characters/:id/heropoints#Notes
     *
     * @param id - Character name
     */
    getHeroPoints(id: string): Promise<string[]>;
    /**
     * Returns inventory of a character attached to a specific account.
     *
     * @param id - Character name
     */
    getInventory(id: string): Promise<{
        bags: ({
            id: number;
            size: number;
            inventory: ({
                id: number;
                count: number;
                charges?: number | undefined;
                infusions?: number[] | undefined;
                upgrades?: number[] | undefined;
                upgrade_slot_indices?: number[] | undefined;
                skin?: number | undefined;
                stats?: {
                    id: number;
                    attributes: {
                        Power?: number | undefined;
                        Precision?: number | undefined;
                        CritDamage?: number | undefined;
                        Toughness?: number | undefined;
                        Vitality?: number | undefined;
                        ConditionDamage?: number | undefined;
                        ConditionDuration?: number | undefined;
                        Healing?: number | undefined;
                        BoonDuration?: number | undefined;
                    };
                } | undefined;
                dyes?: (number | null)[] | undefined;
            } | {
                binding: "Account";
                id: number;
                count: number;
                charges?: number | undefined;
                infusions?: number[] | undefined;
                upgrades?: number[] | undefined;
                upgrade_slot_indices?: number[] | undefined;
                skin?: number | undefined;
                stats?: {
                    id: number;
                    attributes: {
                        Power?: number | undefined;
                        Precision?: number | undefined;
                        CritDamage?: number | undefined;
                        Toughness?: number | undefined;
                        Vitality?: number | undefined;
                        ConditionDamage?: number | undefined;
                        ConditionDuration?: number | undefined;
                        Healing?: number | undefined;
                        BoonDuration?: number | undefined;
                    };
                } | undefined;
                dyes?: (number | null)[] | undefined;
            } | {
                binding: "Character";
                bound_to: string;
                id: number;
                count: number;
                charges?: number | undefined;
                infusions?: number[] | undefined;
                upgrades?: number[] | undefined;
                upgrade_slot_indices?: number[] | undefined;
                skin?: number | undefined;
                stats?: {
                    id: number;
                    attributes: {
                        Power?: number | undefined;
                        Precision?: number | undefined;
                        CritDamage?: number | undefined;
                        Toughness?: number | undefined;
                        Vitality?: number | undefined;
                        ConditionDamage?: number | undefined;
                        ConditionDuration?: number | undefined;
                        Healing?: number | undefined;
                        BoonDuration?: number | undefined;
                    };
                } | undefined;
                dyes?: (number | null)[] | undefined;
            } | null)[];
        } | null)[];
    }>;
    /**
     * Returns information about the quests selected that by a character attached to a specific account.
     *
     * @param id - Character name
     */
    getQuests(id: string): Promise<number[]>;
    /**
     * Returns information about recipes that the given character can use.
     *
     * @param id - Character name
     */
    getRecipes(id: string): Promise<{
        recipes: number[];
    }>;
    /**
     * Returns information about Super Adventure Box on a character attached to a specific account.
     *
     * @param id - Character name
     */
    getSAB(id: string): Promise<{
        zones: {
            id: number;
            mode: "infantile" | "normal" | "tribulation";
            world: number;
            zone: number;
        }[];
        unlocks: {
            id: number;
            name?: string | undefined;
        }[];
        songs: {
            id: number;
            name: "secret_song" | "gatekeeper_lullaby" | "shatter_serenade";
        }[];
    }>;
    /**
     * Returns information about the skills equipped on a character attached to a specific account.
     *
     * @param id - Character name
     */
    getSkills(id: string): Promise<{
        skills: {
            pve: {
                heal: number | null;
                utilities: (number | null)[];
                elite: number | null;
                legends?: (string | null)[] | undefined;
            };
            pvp: {
                heal: number | null;
                utilities: (number | null)[];
                elite: number | null;
                legends?: (string | null)[] | undefined;
            };
            wvw: {
                heal: number | null;
                utilities: (number | null)[];
                elite: number | null;
                legends?: (string | null)[] | undefined;
            };
        };
    }>;
    /**
     * Returns information about the specializations equipped on a character attached to a specific account.
     *
     * @param id - Character name
     */
    getSpecializations(id: string): Promise<{
        specializations: {
            pve: {
                id: number;
                traits: number[];
            }[];
            pvp: {
                id: number;
                traits: number[];
            }[];
            wvw: {
                id: number;
                traits: number[];
            }[];
        };
    }>;
    /**
     * Returns information about the training of a character attached to a specific account.
     *
     * @param id - Character name
     */
    getTraining(id: string): Promise<{
        training: {
            id: number;
            spent: number;
            done: boolean;
        }[];
    }>;
}
