/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
import { RequestResult } from '../utils/request';
export interface RequestConfig {
    url: string;
    headers?: {
        [key: string]: string;
    };
}
export interface Status {
    id: string;
    name: string;
    icon: string;
    description: string;
}
export interface Health {
    current: number;
    max: number;
    wounds: number;
}
export interface CurrentMax {
    current: number;
    max: number;
}
export interface GroupMemberState {
    type: string;
    id: string;
    faction: Faction;
    name: string;
    isAlive: boolean;
    position: Vec3f;
    status: Status[];
    race: Race;
    gender: Gender;
    health: Health[];
    stamina: CurrentMax;
    blood: CurrentMax;
    displayOrder: number;
    warbandID: string;
}
export interface LoginFailed {
    Code: FieldCodes;
    Message: string;
}
export interface LoginThrottled {
    Code: FieldCodes;
    Message: string;
}
export interface ProgressionResult {
    Result: ProgressionResultCode;
    IsSuccess: boolean;
    Details: string;
}
export interface QueueStatusMessage {
    status: string;
    numContributors: number;
    maxContributors: number;
    blueprints: QueuedBlueprintMessage[];
}
export interface QueuedBlueprintMessage {
    name: string;
    percentComplete: number;
    estTimeRemaining: number;
    subName: string;
    amtNeeded: number;
}
export interface ProgressionError {
    ProgressionResult: ProgressionResult;
    Message: string;
    ResultCode: ProgressionResultCode;
    Code: FieldCodes;
}
export interface SecureTradeError {
    SecureTradeResult: ModifySecureTradeResult;
    Message: string;
    ResultCode: ModifySecureTradeResultCode;
    Code: FieldCodes;
}
export interface ModifyVoxJobError {
    VoxJobResult: ModifyVoxJobResult;
    Message: string;
    VoxJobCode: ModifyVoxJobResultCode;
    Code: FieldCodes;
}
export interface MoveItemError {
    MoveItemResult: MoveItemResult;
    Message: string;
    MoveItemCode: MoveItemResultCode;
    Code: FieldCodes;
}
export interface ModifyItemError {
    ModifyItemResult: ModifyItemResult;
    Message: string;
    ReanameItemCode: ModifyItemResultCode;
    Code: FieldCodes;
}
export interface ModifyPlotError {
    ModifyPlotResult: ModifyPlotResult;
    Message: string;
    MoveItemCode: ModifyPlotResultCode;
    Code: FieldCodes;
}
export interface GroupActionError {
    Actions: IActionError[];
    Code: FieldCodes;
    Message: string;
}
export interface ModifyItemResult {
    Code: ModifyItemResultCode;
    Message: string;
}
export interface ModifySecureTradeResult {
    Result: ModifySecureTradeResultCode;
    IsSuccess: boolean;
    Details: string;
    SecureTradeID: string;
}
export interface MoveItemRequest {
    MoveItemID: string;
    StackHash: string;
    UnitCount: number;
    To: MoveItemRequestLocation;
    From: MoveItemRequestLocation;
}
export interface MoveItemRequestLocation {
    CharacterID: string;
    EntityID: string;
    Position: number;
    ContainerID: string;
    DrawerID: string;
    GearSlotIDs: string[];
    VoxSlot: SubItemSlot;
    BuildingID: string;
    WorldPosition: Vec3F;
    Rotation: Euler3f;
    Location: MoveItemRequestLocationType;
}
export interface MoveItemResult {
    MovedItemIDs: string[];
    CreatedEntityID: string;
    Code: MoveItemResultCode;
    Message: string;
}
export interface ModifyVoxJobResult {
    Result: ModifyVoxJobResultCode;
    IsSuccess: boolean;
    Details: string;
    MovedItemID: string;
    DiscoveredRecipeIDs: string[];
}
export interface IGroupInvite {
    Code: string;
    Shard: number;
    Status: InviteStatus;
    TargetsID128: string;
    ForGroup: string;
    ForGroupType: GroupTypes;
    Created: string;
    MaxUses: number;
    Uses: number;
    DurationTicks: number;
}
export interface IActionError {
    Code: ActionErrorCode;
    Message: string;
}
export interface MessageOfTheDay {
    Title: string;
    HTMLContent: string;
    Duration: number;
    Channels: number[];
    ChannelsAsLongs: number[];
    ID: string;
    UtcDisplayStart: string;
    UtcDisplayEnd: string;
    UtcCreated: string;
}
export interface PatchNote {
    Channels: number[];
    ChannelsAsLongs: number[];
    HTMLContent: string;
    Title: string;
    PatchNumber: string;
    ID: string;
    UtcDisplayStart: string;
    UtcDisplayEnd: string;
    UtcCreated: string;
}
export interface BaseContentModel {
    ID: string;
    UtcDisplayStart: string;
    UtcDisplayEnd: string;
    UtcCreated: string;
}
export interface PatcherAlert {
    Message: string;
    ID: string;
    UtcDisplayStart: string;
    UtcDisplayEnd: string;
    UtcCreated: string;
}
export interface PatcherHero {
    HTMLContent: string;
    Priority: number;
    ID: string;
    UtcDisplayStart: string;
    UtcDisplayEnd: string;
    UtcCreated: string;
}
export interface ModifyPlotResult {
    Code: ModifyPlotResultCode;
    Message: string;
    QueueStatus: QueueStatusMessage;
}
export interface Euler3f {
    roll: number;
    pitch: number;
    yaw: number;
    x: number;
    y: number;
    z: number;
}
export interface Vec2f {
    x: number;
    y: number;
}
export interface Vec3f {
    x: number;
    y: number;
    z: number;
}
export interface SecureTradeItem {
    ItemID: string;
    UnitCount: number;
}
export interface ArchetypeInfo {
    description: string;
    faction: Faction;
    id: Archetype;
    name: string;
}
export interface Channel {
    ID: number;
    Name: string;
    Description: string;
    Permissions: PatchPermissions;
}
export interface SimpleCharacter {
    archetype: Archetype;
    faction: Faction;
    gender: Gender;
    id: string;
    lastLogin: string;
    name: string;
    race: Race;
    shardID: number;
}
export interface Character {
    archetype: Archetype;
    attributes: {
        [key: string]: number;
    };
    traitIDs: string[];
    faction: Faction;
    gender: Gender;
    id: string;
    lastLogin: string;
    name: string;
    race: Race;
    shardID: number;
}
export interface ControlGameState {
    arthurianScore: number;
    controlPoints: ControlPoint[];
    gameState: number;
    timeLeft: number;
    tuathaDeDanannScore: number;
    vikingScore: number;
}
export interface ControlPoint {
    faction: string;
    id: string;
    size: string;
    x: number;
    y: number;
}
export interface FactionInfo {
    description: string;
    id: number;
    name: string;
    shortName: string;
}
export interface PatcherAlert {
    id: string;
    message: string;
    utcDateEnd: string;
    utcDateStart: string;
}
export interface PatcherHeroContent {
    content: string;
    id: string;
    priority: number;
    utcDateEnd: string;
    utcDateStart: string;
}
export interface PlayerAttributeOffset {
    race: Race;
    gender: Gender;
    attributeOffsets: {
        [key: string]: number;
    };
}
export interface PlayerPresence {
    characterID: string;
    connectedZoneInstanceIDs: number[];
    activeZoneInstanceID: number;
    desiredZoneInstanceID: number;
}
export interface PlayerStatAttribute {
    baseValue: number;
    derivedFrom: string;
    description: string;
    maxOrMultipler: number;
    name: string;
    type: PlayerStatType;
    units: string;
}
export interface RaceInfo {
    name: string;
    description: string;
    faction: Faction;
    id: Race;
}
export interface ServerModel {
    accessLevel: AccessType;
    channelID: number;
    channelPatchPermissions: number;
    host: string;
    name: string;
    playerMaximum: number;
    shardID: number;
    status: ServerStatus;
    apiHost: string;
}
export interface ServerPresence {
    address: string;
    zoneResourceID: number;
    zoneInstanceID: number;
    shardID: number;
    zoneBoundsMax: Vec2f;
    zoneBoundsMin: Vec2f;
    restrictToFaction: Faction;
    isStartingZone: boolean;
    isHidden: boolean;
    isMainInstance: boolean;
}
export interface ServerState {
    controlGameState: ControlGameState;
    playerCounts: PlayerCounts;
    spawnPoints: SpawnPoint[];
}
export interface SpawnPoint {
    id: string;
    faction: Faction;
    position: Vec3f;
}
export interface PlayerCounts {
    arthurian: number;
    maxPlayers: number;
    tuatha: number;
    viking: number;
}
export interface StartingServer {
    Address: string;
    ZoneInstanceID: number;
}
export interface ZoneInfo {
    ID: string;
    Name: string;
    Address: string;
    Bounds: string;
}
export interface Trait {
    id: string;
    name: string;
    description: string;
    icon: string;
    points: number;
    prerequisites: string[];
}
export interface OptionalAndRequiredTraits {
    required: string[];
    optional: string[];
}
export interface ExclusiveTraits {
    ids: string[];
    minRequired: number;
    maxAllowed: number;
}
export interface TraitList {
    traits: Trait[];
    factions: {
        [key: string]: OptionalAndRequiredTraits;
    };
    races: {
        [key: string]: OptionalAndRequiredTraits;
    };
    archetypes: {
        [key: string]: OptionalAndRequiredTraits;
    };
    ranks: string[][];
    exclusivity: ExclusiveTraits[];
}
export interface WarbandMember {
    additionalPermissions: string[];
    archetype: Archetype;
    avatar: string;
    blood: CurrentMaxValue;
    characterID: string;
    gender: Gender;
    health: CurrentMaxValue[];
    joined: string;
    name: string;
    panic: CurrentMaxValue;
    parted: string;
    race: Race;
    rank: string;
    stamina: CurrentMaxValue;
    temperature: Temperature;
    wounds: number[];
}
export interface ApiErrorResponse {
    Code: number;
    Message: string;
    FieldCodes: IFieldCode[];
}
export interface BadRequestFieldCode {
    Code: FieldCodes;
    Message: string;
}
export interface UnspecifiedRequestError {
    Code: FieldCodes;
    Message: string;
}
export interface InvalidModel {
    ModelErrors: ModelError[];
    Code: FieldCodes;
    Message: string;
}
export interface ModelError {
    Message: string;
    ParamName: string;
    TypeName: string;
}
export interface ExecutionErrorFieldCode {
    Code: FieldCodes;
    Message: string;
}
export interface UnspecifiedExecutionError {
    Code: FieldCodes;
    Message: string;
}
export interface TimeoutError {
    Code: FieldCodes;
    Message: string;
}
export interface UnhandledExecutionException {
    Exception: string;
    Code: FieldCodes;
    Message: string;
}
export interface DoesNotExist {
    Code: FieldCodes;
    Message: string;
}
export interface UserStateConflict {
    Code: FieldCodes;
    Message: string;
}
export interface InsufficientResource {
    Resources: ResourceRequirement[];
    Code: FieldCodes;
    Message: string;
}
export interface ResourceRequirement {
    Name: string;
    Required: Object;
    Available: Object;
}
export interface IFieldCode {
    Code: FieldCodes;
    Message: string;
}
export interface NotAllowedFieldCode {
    Code: FieldCodes;
    Message: string;
}
export interface UnspecifiedNotAllowed {
    Code: FieldCodes;
    Message: string;
}
export interface RateLimitExceeded {
    Retry: number;
    Code: FieldCodes;
    Message: string;
}
export interface InternalAction {
    Code: FieldCodes;
    Message: string;
}
export interface ServiceUnavailableFieldCode {
    Code: FieldCodes;
    Message: string;
}
export interface UnspecifiedServiceUnavailable {
    Code: FieldCodes;
    Message: string;
}
export interface DatabaseUnavailable {
    Code: FieldCodes;
    Message: string;
}
export interface GroupServiceUnavailable {
    Code: FieldCodes;
    Message: string;
}
export interface GameServiceUnavailable {
    Code: FieldCodes;
    Message: string;
}
export interface PresenceServiceUnavailable {
    Code: FieldCodes;
    Message: string;
}
export interface UnauthorizedFieldCode {
    Code: FieldCodes;
    Message: string;
}
export interface UnspecifiedAuthorizationDenied {
    Code: FieldCodes;
    Message: string;
}
export interface APIKeyAuthorizationFailed {
    Code: FieldCodes;
    Message: string;
}
export interface LoginTokenAuthorizationFailed {
    Code: FieldCodes;
    Message: string;
}
export interface RealmRestricted {
    Code: FieldCodes;
    Message: string;
}
export declare enum APIPermissions {
    None = 0,
    Equipment = 1,
    Inventory = 2,
    StatsAndTraits = 3,
    LiveStatus = 4,
    Progression = 5,
    ManageEquipment = 6,
    ManageInventory = 6,
    Friends = 10,
    Enemies = 11,
    ActiveWarband = 12,
    Battlegroup = 13,
    Warbands = 14,
    Order = 15,
    Campaigns = 16,
    Invites = 17,
    LiveWarbandStatus = 18,
    LiveBattlegroupStatus = 19,
    VoxInventory = 20,
    VoxJobs = 21,
    ManageVoxJobs = 22,
    Plot = 30,
    PlotQueue = 31,
    ManagePlot = 32,
    All = 2147483647,
}
export declare enum PlayerStatType {
    None = 0,
    Primary = 1,
    Secondary = 2,
    Derived = 3,
    Hidden = 4,
}
export declare enum SubItemSlot {
    Invalid = 0,
    PrimarySubstance = 1,
    SecondarySubstance1 = 2,
    SecondarySubstance2 = 3,
    SecondarySubstance3 = 4,
    Alloy = 5,
    WeaponBlade = 6,
    WeaponHandle = 7,
    NonRecipe = 8,
}
export declare enum Archetype {
    BlackKnight = 8,
    Fianna = 9,
    Mjolnir = 10,
    Physician = 11,
    Empath = 12,
    Stonehealer = 13,
    Blackguard = 14,
    ForestStalker = 15,
    WintersShadow = 16,
}
export declare enum Faction {
    Factionless = 0,
    TDD = 1,
    Viking = 2,
    Arthurian = 3,
    COUNT = 4,
}
export declare enum Gender {
    None = 0,
    Male = 1,
    Female = 2,
}
export declare enum Race {
    Luchorpan = 2,
    Valkyrie = 4,
    HumanMaleV = 15,
    HumanMaleA = 16,
    HumanMaleT = 17,
    Pict = 18,
}
export declare enum ProgressionResultCode {
    Success = 0,
    InProgress = 1,
    PlayerNotFound = 2,
    DailyLogNotFound = 3,
    DBError = 4,
    DailyLogNotPublished = 5,
    NotNextDayLog = 6,
    InItemLoadoutScenario = 7,
    InvalidRequest = -1,
}
export declare enum ModifyItemResultCode {
    Invalid = 0,
    Success = 1,
    NotSupported = 2,
    InvalidName = 3,
    PermissionDenied = 4,
    EntityNotFound = 5,
    ItemNotFound = 6,
    IncompatiblePermissions = 7,
}
export declare enum ModifySecureTradeResultCode {
    Success = 0,
    NoTrade = 1,
    IncorrectState = 2,
    ItemNotFound = 3,
    InventoryNotFound = 4,
    DuplicateItemInRequest = 5,
    NoPendingInvite = 6,
    MissingFaction = 7,
    FactionMismatch = 8,
    TradeSourceNotAlive = 9,
    TradeTargetNotAlive = 10,
    NoEntityPosition = 11,
    TooFarAway = 12,
    EntityMismatch = 13,
    CanceledEntityMissing = 14,
    DBError = 15,
    NotLoggedIn = 16,
    EntityToTradeWithNotFound = 17,
    CannotTradeWithSelf = 18,
    MoveItemError = 19,
    EntityCannotTrade = 20,
    LockTimeNotPassed = 21,
    InvalidRequest = -1,
}
export declare enum MoveItemRequestLocationType {
    Invalid = 0,
    Container = 1,
    Equipment = 2,
    Ground = 3,
    Inventory = 4,
    Vox = 5,
    Trash = 6,
    BuildingPlaced = 7,
}
export declare enum MoveItemResultCode {
    Success = 0,
    None = 1,
    Timeout = 2,
    PlayerNotFound = 3,
    EntityNotFound = 4,
    ItemNotFound = 5,
    ItemNotValid = 6,
    MixedError = 7,
    TooManyItems = 8,
    InventoryNotFound = 9,
    EquipmentNotFound = 10,
    DefinitionNotFound = 11,
    SecureTradeNotFound = 12,
    InvalidParameter = 13,
    SpatialNotFound = 14,
    ItemFeatureTurnedOff = 15,
    BrokenItem = 16,
    ItemRequirementNotMet = 17,
    ItemStatRequirementNotMet = 18,
    EntityNotValid = 19,
    MultiItemMoveNotSupported = 20,
    ItemsDoNotStack = 21,
    TooFarAway = 22,
    PermissionDenied = 23,
    ItemInversion = 24,
    InvalidVoxSlot = 25,
    ItemCannotBeTraded = 26,
    RestrictedToScenario = 27,
    CannotRemoveFromRunningScenario = 28,
    TrashingItemNotAllowed = 29,
    OutOfRange = 30,
}
export declare enum ModifyVoxJobResultCode {
    Success = 0,
    JobAlreadyExists = 1,
    InvalidJob = 2,
    NoCurrentJob = 3,
    ItemsInVox = 4,
    IncorrectJobState = 5,
    DBError = 6,
    NotSupported = 7,
    InvalidRecipe = 8,
    TooManyIngredients = 9,
    NotEnoughIngredients = 10,
    IncorrectIngredient = 11,
    InvalidIngredient = 12,
    InvalidQuality = 13,
    InventoryFull = 14,
    NoRepairPoints = 15,
    InvalidUnitCount = 16,
    ParameterError = 17,
    VoxNotFound = 18,
    RecipeAlreadyDiscovered = 19,
    RecipeNotSet = 20,
    ItemSlotNotSupported = 21,
    IngredientsExist = 22,
    VoxBroken = 23,
    IngredientBroken = 24,
    PlayerNotFound = 25,
    MoveItemError = 26,
    InvalidItemName = 27,
    InvalidRequest = -1,
}
export declare enum InviteStatus {
    Active = 0,
    Revoked = 1,
    UsageLimitReached = 2,
    Expired = 3,
}
export declare enum GroupTypes {
    Warband = 0,
    Battlegroup = 1,
    Order = 2,
    Campaign = 3,
}
export declare enum ActionErrorCode {
    UnspecifiedError = 0,
    ServerException = 1,
    NoActionRequired = 2,
    GeneralDatabaseError = 3,
    PermissionDenied = 4,
    CharacterNotFound = 5,
    GroupNotFound = 6,
    WrongGroupType = 7,
    WrongFaction = 8,
    NameLength = 9,
    NameContainsInvalidCharacters = 10,
    NameContainsNaughtyWords = 11,
    NameContainsReservedWords = 12,
    NameAlreadyInUse = 13,
    ActiveWarbandAlreadyExists = 14,
    AlreadyAnOrderMember = 15,
    MemberLimitReached = 16,
    InviteCodeNotFound = 17,
    InviteRequirementsNotMet = 18,
    InviteExpired = 19,
    InviteRevoked = 20,
    InviteUsageLimitReached = 21,
    RankLimitReached = 22,
    InvalidRankLevel = 23,
}
export declare enum PatchPermissions {
    Public = 0,
    AllBackers = 1,
    InternalTest = 2,
    Development = 4,
    Alpha = 8,
    Beta1 = 16,
    Beta2 = 32,
    Beta3 = 64,
}
export declare enum ResourceNodePermissions {
    None = 0,
    Take = 1,
    AutoDiscovered = 2,
    All = -1,
}
export declare enum PermissibleSetKeyType {
    Invalid = 0,
    Faction = 1,
    ScenarioTeam = 2,
    ScenarioRole = 3,
}
export declare enum PermissibleTargetType {
    Invalid = 0,
    Any = 1,
    Faction = 2,
    Character = 3,
    ScenarioTeam = 4,
    Warband = 5,
    CharactersWarband = 6,
    CharactersFaction = 7,
    CharactersOrder = 8,
    InNoScenario = 9,
    Inverse = 10,
    And = 11,
    ScenarioRole = 12,
    Scenario = 13,
}
export declare enum VoxJobType {
    Invalid = 0,
    Block = 1,
    Grind = 2,
    Make = 3,
    Purify = 4,
    Refine = 5,
    Repair = 6,
    Salvage = 7,
    Shape = 8,
}
export declare enum ItemPermissions {
    None = 0,
    Trade = 1,
    Pickup = 2,
    Trash = 4,
    CraftWithVox = 8,
    Control = 16,
    AddContents = 32,
    RemoveContents = 64,
    ViewContents = 128,
    Drop = 256,
    ModifyDisplay = 512,
    All = -1,
}
export declare enum ModifyPlotResultCode {
    Success = 0,
    PlotNotFound = 1,
    CharacterNotFound = 2,
    InvalidParameter = 3,
    NoMatchingPermissionSetFound = 4,
    PermissionDenied = 5,
    CharacterNotOnPlot = 6,
    PlotNotCompatibleWithScenario = 7,
    PlotNotCompatibleWithFaction = 8,
    ScenarioNotFound = 9,
    TeamNotForScenario = 10,
}
export declare enum PlotPermissions {
    None = 0,
    BuildStructure = 1,
    DismantleStructure = 2,
    RemoveDroppedBlocks = 4,
    ModifyBuildQueue = 8,
    Owned = 16,
    UseSpawnPoint = 32,
    ModifyItems = 64,
    NoPlayerOwnerPermissions = 111,
    All = -1,
}
export declare enum AccessType {
    Public = 0,
    Beta3 = 1,
    Beta2 = 2,
    Beta1 = 3,
    Alpha = 4,
    InternalTest = 5,
    Employees = 6,
}
export declare enum SpawnPointPermissions {
    None = 0,
    Spawn = 1,
    All = -1,
}
export declare enum ServerStatus {
    Offline = 0,
    Starting = 1,
    Online = 2,
}
export declare enum FieldCodes {
    BasicSuccess = 0,
    GroupActionSuccess = 1,
    ModifyVoxJobSuccess = 2,
    MoveItemSuccess = 3,
    ProgressionSuccess = 4,
    ModifySecureTradeSuccess = 5,
    ModifyPlotSuccess = 6,
    ModifyItemSuccess = 7,
    LoginSuccess = 8,
    UnspecifiedAuthorizationDenied = 1000,
    APIKeyAuthorizationFailed = 1001,
    LoginTokenAuthorizationFailed = 1002,
    RealmRestricted = 1003,
    LoginFailed = 1004,
    LoginThrottled = 1005,
    UnspecifiedNotAllowed = 2000,
    RateLimitExceeded = 2001,
    InternalAction = 2002,
    UnspecifiedRequestError = 3000,
    UnspecifiedExecutionError = 4000,
    UnhandledExecutionException = 4001,
    DoesNotExist = 4002,
    UserStateConflict = 4003,
    InsufficientResource = 4004,
    VoxJobError = 4005,
    MoveItemError = 4006,
    SecureTradeError = 4007,
    ProgressionError = 4008,
    GroupActionError = 4009,
    TimeoutError = 4010,
    ModifyItemError = 4011,
    UnspecifiedServiceUnavailable = 5000,
    DatabaseUnavailable = 5001,
    GroupServiceUnavailable = 5002,
    GameServiceUnavailable = 5003,
    PresenceServiceUnavailable = 5004,
    InvalidModel = 30001,
}
export declare const CharactersAPI: {
    GetCharactersV1: (config: RequestConfig, loginToken: string) => Promise<RequestResult>;
    GetCharactersOnShardV1: (config: RequestConfig, loginToken: string, shardID: number) => Promise<RequestResult>;
    GetCharacterV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    DeleteCharacterV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    CreateCharacterV1: (config: RequestConfig, loginToken: string, shardID: number, character: Partial<Character>) => Promise<RequestResult>;
};
export declare const ContentAPI: {
    MessageOfTheDayV1: (config: RequestConfig, channel: number) => Promise<RequestResult>;
    PatcherHeroContentV1: (config: RequestConfig) => Promise<RequestResult>;
    PatcherAlertsV1: (config: RequestConfig) => Promise<RequestResult>;
};
export declare const CraftingAPI: {
    SetVoxJob: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, job: VoxJobType) => Promise<RequestResult>;
    ClearVoxJob: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    SetRecipeID: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, recipeID: string) => Promise<RequestResult>;
    SetQuality: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, quality: number) => Promise<RequestResult>;
    SetCustomItemName: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, itemName: string) => Promise<RequestResult>;
    AddIngredient: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, itemInstanceID: string, unitCount: number, slot: SubItemSlot) => Promise<RequestResult>;
    RemoveVoxIngredient: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, itemInstanceID: string, unitCount: number) => Promise<RequestResult>;
    StartVoxJob: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    CollectFinishedVoxJob: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    CancelVoxJob: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    SetVoxItemCount: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, count: number) => Promise<RequestResult>;
};
export declare const GameDataAPI: {
    GetFactionInfoV1: (config: RequestConfig) => Promise<RequestResult>;
    GetFactionsV1: (config: RequestConfig) => Promise<RequestResult>;
    GetAttributeInfoV1: (config: RequestConfig, shard: number) => Promise<RequestResult>;
    GetArchetypesV1: (config: RequestConfig) => Promise<RequestResult>;
    GetRacesV1: (config: RequestConfig) => Promise<RequestResult>;
    GetAttributeOffsetsV1: (config: RequestConfig, shard: number) => Promise<RequestResult>;
    GetOrderPermissionsV1: (config: RequestConfig) => Promise<RequestResult>;
};
export declare const GroupsAPI: {
    CreateWarbandV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    CreateBattlegroupV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    CreateOrderV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, name: string) => Promise<RequestResult>;
    KickV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, targetID: string, groupID: string) => Promise<RequestResult>;
    InviteV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, groupID: string, targetID: string, targetName: string) => Promise<RequestResult>;
    JoinV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, groupID: string, inviteCode: string) => Promise<RequestResult>;
    QuitV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, groupID: string) => Promise<RequestResult>;
    AbandonV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, groupID: string) => Promise<RequestResult>;
    DisbandV1: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, groupID: string) => Promise<RequestResult>;
};
export declare const ItemAPI: {
    MoveItems: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, request: Partial<MoveItemRequest>) => Promise<RequestResult>;
    BatchMoveItems: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, requests: Partial<MoveItemRequest[]>) => Promise<RequestResult>;
    SetContainerColor: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, itemInstanceID: string, itemEntityID: string, red: number, green: number, blue: number, alpha: number) => Promise<RequestResult>;
    RenameItem: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, itemInstanceID: string, itemEntityID: string, newName: string) => Promise<RequestResult>;
};
export declare const OrdersAPI: {};
export declare const PresenceAPI: {
    GetStartingServer: (config: RequestConfig, shardID: number, characterID: string) => Promise<RequestResult>;
    GetServers: (config: RequestConfig, shardID: number) => Promise<RequestResult>;
    GetPlayers: (config: RequestConfig, shardID: number) => Promise<RequestResult>;
};
export declare const PlotsAPI: {
    ReleasePlot: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, plotEntityID: string) => Promise<RequestResult>;
    TakeOwnership: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, plotEntityID: string) => Promise<RequestResult>;
    GrantPermissions: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, plotEntityID: string, newPermissions: PlotPermissions, target: PermissibleTargetType) => Promise<RequestResult>;
    RevokePermissions: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, plotEntityID: string, revokePermissions: PlotPermissions, target: PermissibleTargetType) => Promise<RequestResult>;
    RemoveQueuedBlueprint: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, plotEntityID: string, indexToRemove: number) => Promise<RequestResult>;
    ReorderQueue: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, plotEntityID: string, indexToMove: number, destinationIndex: number) => Promise<RequestResult>;
    GetQueueStatus: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, plotEntityID: string) => Promise<RequestResult>;
};
export declare const ProgressionAPI: {
    CollectCharacterDayProgression: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, logID: string) => Promise<RequestResult>;
};
export declare const SecureTradeAPI: {
    Invite: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, tradeTargetID: string) => Promise<RequestResult>;
    RevokeInvite: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, inviteTargetID: string) => Promise<RequestResult>;
    AcceptInvite: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, inviterID: string) => Promise<RequestResult>;
    RejectInvite: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, inviterID: string) => Promise<RequestResult>;
    AbortSecureTrade: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    Lock: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    Unlock: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    AddItems: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, items: Partial<SecureTradeItem[]>) => Promise<RequestResult>;
    RemoveItem: (config: RequestConfig, loginToken: string, shardID: number, characterID: string, items: Partial<SecureTradeItem[]>) => Promise<RequestResult>;
    Confirm: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
    CancelTradeConfirmation: (config: RequestConfig, loginToken: string, shardID: number, characterID: string) => Promise<RequestResult>;
};
export declare const ServersAPI: {
    GetServersV1: (config: RequestConfig) => Promise<RequestResult>;
    GetServersForChannelV1: (config: RequestConfig, channelId: number) => Promise<RequestResult>;
    GetHostsForServerV1: (config: RequestConfig, channelId: number, name: string) => Promise<RequestResult>;
    GetAvailableZones: (config: RequestConfig, shard: number) => Promise<RequestResult>;
    GetZoneInfo: (config: RequestConfig, shard: number, zoneID: string) => Promise<RequestResult>;
};
export declare const TraitsAPI: {
    GetTraitsV1: (config: RequestConfig, shardID: number) => Promise<RequestResult>;
};
export interface CurrentMaxValue {
    current: number;
    maximum: number;
}
export interface Temperature {
    current: number;
    freezingThreshold: number;
    burndingThreshold: number;
}
export interface Vec2F {
    x: number;
    y: number;
}
export interface Vec3F {
    x: number;
    y: number;
    z: number;
}
