import { CharacterType, StatusInfo, SlotInfo, ItemInfo, ServerRegion, ServerIdentifier, BankInfo, SInfo, TradeSlotType } from "./adventureland";
import { DamageType, EmotionName, ItemName, MapName, MonsterName, NPCName, SkillName } from "./adventureland-data";
export declare type AchievementProgressData = {
    name: string;
} | AchievementProgressDataFirehazard;
export declare type AchievementProgressDataFirehazard = {
    name: "firehazard";
    count: number;
    needed: number;
};
export declare type ActionData = {
    attacker: string;
    damage: number;
    eta: number;
    m: number;
    pid: string;
    projectile: "arrow" | "pmag" | "supershot" | string;
    source: "attack" | "supershot" | string;
    target: string;
    type: "attack" | "supershot" | string;
    x: number;
    y: number;
};
export declare type AuthData = {
    auth: string;
    user: string;
    character: string;
    passphrase: string;
    height: number;
    width: number;
    scale: number;
    no_html: "1" | "";
    no_graphics: "True" | "";
    code_slot?: number;
};
export declare type CharacterData = PlayerData & {
    hp: number;
    max_hp: number;
    mp: number;
    max_mp: number;
    attack: number;
    fear: number;
    courage: number;
    mcourage: number;
    pcourage: number;
    frequency: number;
    speed: number;
    range: number;
    armor: number;
    resistance: number;
    level: number;
    rip: boolean;
    afk: "afk" | string;
    s: StatusInfo;
    c: any;
    q: {
        compound?: {
            len: number;
            ms: number;
            num: number;
            nums: number[];
        };
        upgrade?: {
            len: number;
            ms: number;
            num: number;
        };
        exchange?: {
            len: number;
            ms: number;
        };
    };
    abs: boolean;
    age: number;
    angle: number;
    blast: number;
    pdps: number;
    id: string;
    name: string;
    x: number;
    y: number;
    going_x?: number;
    going_y?: number;
    moving: boolean;
    stand?: boolean | "cstand" | "stand0";
    skin: string;
    slots: SlotInfo;
    ctype: CharacterType;
    owner: string;
    party?: string;
    explosion: number;
    firesistance: number;
    fzresistance: number;
    mp_reduction: number;
    pnresistance: number;
    stun: number;
    int: number;
    str: number;
    dex: number;
    vit: number;
    for: number;
    mp_cost: number;
    max_xp: number;
    goldm: number;
    xpm: number;
    xp: number;
    luckm: number;
    map: MapName;
    in: string;
    isize: number;
    esize: number;
    gold: number;
    cash: number;
    targets: number;
    target?: string;
    m: number;
    evasion: number;
    miss: number;
    move_num: number;
    reflection: number;
    lifesteal: number;
    manasteal: number;
    rpiercing: number;
    apiercing: number;
    crit: number;
    critdamage: number;
    dreturn: number;
    emx: {
        [T in EmotionName]?: number;
    };
    tax: number;
    xrange: number;
    items: ItemInfo[];
    cc: number;
    cid: number;
    controller: string;
    cx: any;
    ipass?: string;
    friends?: any;
    acx?: any;
    xcx?: string[];
    hitchhikers?: [string, any][];
    user?: BankInfo;
};
export declare type CharacterListData = {
    map: MapName;
    in: MapName;
    name: string;
    level: number;
    skin: string;
    cx: any;
    online: number;
    y: number;
    x: number;
    type: CharacterType;
    id: string;
    secret?: string;
    server?: string;
};
export declare type ChestData = {
    chest: "chest3" | "chest4" | "chest6" | string;
    id: string;
    items: number;
    map: MapName;
    party: string;
    x: number;
    y: number;
};
export declare type ChestOpenedData = {
    id: string;
    gold: number;
    goldm: number;
    items: {
        name: string;
        q?: number;
        level?: number;
        looter: string;
    }[];
    opener: string;
    party: boolean;
} | {
    id: string;
    gone: true;
};
export declare type DeathData = {
    id: string;
    place?: "attack" | string;
};
export declare type DisappearData = {
    id: string;
    effect?: 1;
    reason?: "disconnect" | "invis" | "transport" | string;
    s?: number | [number, number, number?];
    to?: MapName;
};
export declare type DisappearingTextData = {
    message: string;
    x: number;
    y: number;
    id: string;
    args: any;
};
export declare type EmotionData = {
    name: EmotionName;
    player: string;
};
export declare type EntitiesData = {
    type: "all" | "xy";
    in: MapName;
    map: MapName;
    monsters: EntityData[];
    players: PlayerData[];
};
export declare type EntityData = {
    id: string;
    type: MonsterName;
    abs: boolean;
    angle: number;
    armor: number;
    cid: number;
    frequency: number;
    going_x: number;
    going_y: number;
    move_num: number;
    moving: boolean;
    resistance: number;
    s: StatusInfo;
    target?: string;
    x: number;
    y: number;
    "1hp"?: boolean;
    apiercing?: number;
    attack?: number;
    charge?: number;
    cooperative?: boolean;
    damage_type?: DamageType;
    evasion?: number;
    hp?: number;
    immune?: boolean;
    level?: number;
    map?: MapName;
    max_hp?: number;
    max_mp?: number;
    mp?: number;
    range?: number;
    reflection?: number;
    rpiercing?: number;
    speed?: number;
    xp?: number;
};
export declare type EvalData = {
    code: string;
};
export declare type GameLogData = GameLogDataString;
export declare type GameLogDataString = "Already partying" | "Invitation expired" | string;
export declare type GameResponseData = GameResponseDataObject | GameResponseDataString;
export declare type GameResponseDataObject = {
    response: "attack_failed";
    place: "attack";
    id: string;
} | {
    response: "bank_restrictions";
    place: "compound" | string;
} | {
    response: "buy_success";
    cost: number;
    num: number;
    name: ItemName;
    q: number;
} | {
    response: "cooldown";
    skill?: SkillName;
    place: SkillName;
    id: string;
    ms: number;
} | {
    response: "craft";
    name: ItemName;
} | {
    response: "defeated_by_a_monster";
    xp: number;
    monster: MonsterName;
} | {
    response: "disabled";
    place: "attack";
} | {
    response: "ex_condition";
    name: SkillName;
} | {
    response: "gold_sent";
    name: string;
    gold: number;
} | {
    response: "item_sent";
    name: string;
    item: ItemName;
    q: number;
} | {
    response: "mail_item_taken";
} | {
    response: "magiport_failed";
    id: string;
} | {
    response: "magiport_sent";
    id: string;
} | {
    response: "no_mp";
    place: "attack";
} | {
    response: "no_target";
} | {
    response: "skill_success";
    name: SkillName;
} | {
    response: "too_far";
    place: "attack";
    id: string;
    dist: number;
} | {
    response: "gold_received" | "item_placeholder" | "item_received";
    gold: number;
    name: string;
};
export declare type GameResponseDataString = "bank_restrictions" | "buy_cant_npc" | "buy_cant_space" | "buy_cost" | "buy_get_closer" | "cant_escape" | "compound_no_item" | "ecu_get_closer" | "emotion_cant" | "emotion_cooldown" | "exchange_existing" | "exchange_notenough" | "monsterhunt_merchant" | "monsterhunt_started" | "no_level" | "no_target" | "resolve_skill" | "send_no_space" | "skill_cant_incapacitated" | "skill_cant_wtype" | "skill_too_far" | "trade_bspace" | "trade_get_closer" | "upgrade_in_progress" | "upgrade_incompatible_scroll" | "upgrade_fail" | "upgrade_success";
export declare type HitData = {
    anim: "arrow_hit" | "miss" | "reflect" | "slash1" | string;
    avoid?: boolean;
    damage: number;
    lifesteal?: number;
    evade?: boolean;
    hid?: string;
    id?: string;
    pid?: string;
    projectile?: string;
    reflect?: boolean;
    sneak?: boolean;
    source?: "attack" | "heal" | string;
    stacked?: string[];
    stun?: boolean;
    miss?: boolean;
    kill?: boolean;
};
export declare type InviteData = {
    name: string;
};
export declare type LoadedData = {
    height: number;
    width: number;
    scale: number;
    success: 1 | number;
};
export declare type MailData = {
    cursor: string;
    cursored: boolean;
    mail: MailMessageData[];
    more: boolean;
    type: "mail";
};
export declare type MailMessageData = {
    id: string;
    fro: string;
    to: string;
    sent: string;
    message: string;
    item?: string;
    taken?: boolean;
};
export declare type PullMerchantData = {
    type: "merchants";
    chars: PullMerchantCharData[];
};
export declare type PullMerchantCharData = {
    map: MapName;
    x: number;
    y: number;
    afk: boolean;
    server: string;
    stand: ItemName;
    name: string;
    level: number;
    slots: {
        [T in TradeSlotType]?: ItemInfo & {
            giveaway?: number;
            list?: string[];
            price: number;
            rid: string;
        };
    };
};
export declare type NewMapData = {
    direction: number;
    effect: number | "magiport";
    entities: EntitiesData;
    in: MapName;
    info: any;
    m: number;
    name: MapName;
    x: number;
    y: number;
};
export declare type PartyData = {
    list: string[];
    message?: string;
    party: {
        [T in string]: {
            gold: number;
            in: MapName;
            l: number;
            level: number;
            luck: number;
            map: MapName;
            share: number;
            skin: string;
            type: string;
            x: number;
            xp: number;
            y: number;
        };
    };
};
export declare type PlayerData = {
    id: string;
    ctype: CharacterType | NPCName;
    abs: boolean;
    afk?: string;
    angle: number;
    armor: number;
    attack: number;
    c: any;
    cid: number;
    cx: any;
    focus?: string;
    frequency: number;
    x: number;
    y: number;
    going_x: number;
    going_y: number;
    hp: number;
    level: number;
    max_hp: number;
    max_mp: number;
    move_num?: number;
    moving?: boolean;
    mp: number;
    npc?: string;
    owner: string;
    party?: string;
    pdps: number;
    q: {
        compound?: {
            len: number;
            ms: number;
            num: number;
            nums: number[];
        };
        upgrade?: {
            len: number;
            ms: number;
            num: number;
        };
    };
    range: number;
    resistance: number;
    rip: boolean;
    s: StatusInfo;
    skin: string;
    slots: SlotInfo;
    speed: number;
    stand?: boolean | "cstand" | "stand0";
    tp?: boolean;
    map?: MapName;
    in?: MapName;
};
export declare type QData = {
    num: number;
    p: {
        chance: number;
        level: number;
        name: ItemName;
        nums: number[];
        scroll: ItemName;
        success?: boolean;
    };
    q: {
        compound?: {
            len: number;
            ms: number;
            num: number;
            nums: number[];
        };
        upgrade?: {
            len: number;
            ms: number;
            num: number;
        };
    };
};
export declare type ServerData = {
    addr: string;
    port: number;
    region: ServerRegion;
    name: ServerIdentifier;
    players: number;
    key: string;
};
export declare type StartData = CharacterData & {
    info: any;
    base_gold: {
        [T in MonsterName]?: {
            [T in string]?: number;
        };
    };
    s_info: SInfo;
    entities: EntitiesData;
};
export declare type TrackerData = {
    monsters: {
        [T in MonsterName]?: number;
    };
    monsters_diff: {
        [T in MonsterName]?: number;
    };
    exchanges: {};
    maps: {
        [T in MapName | "global" | "global_static"]: [number, ItemName][] | [number, "open", string][];
    };
    tables: {
        [T in ItemName | string]?: [number, ItemName][];
    };
    max: {
        monsters: {
            [T in MonsterName]?: [number, string];
        };
    };
    drops: {
        [T in MonsterName]?: [number, ItemName][];
    };
    global: [number, ItemName][] | [number, "open", string][];
    global_static: [number, ItemName][] | [number, "open", string][];
};
export declare type UIData = {
    type: "fishing_fail";
    name: string;
} | {
    type: "fishing_none";
    name: string;
} | {
    type: "fishing_start";
    name: string;
    direction: number;
} | {
    type: "massproduction";
    name: string;
} | {
    type: "mluck";
    from: string;
    to: string;
} | {
    type: "scare";
    name: string;
    ids: string[];
} | {
    type: "+$";
    id: "basics" | "scrolls" | string;
    name: string;
    item: {
        name: ItemName;
        q: number;
    };
} | {
    type: "-$";
    id: "basics" | "scrolls" | string;
    name: string;
    item: {
        name: ItemName;
        q: number;
    };
    num: string;
};
export declare type UpgradeData = {
    type: "compound" | "exchange" | "upgrade" | string;
    success: 0 | 1;
};
export declare type WelcomeData = {
    region: ServerRegion;
    in: MapName;
    map: MapName;
    gameplay: "normal" | string;
    info: any;
    name: ServerIdentifier;
    pvp: boolean;
    x: number;
    y: number;
};
