export declare enum TileId {
    AIR = 0,
    SOLID = 1,
    DEATH = 2,
    NOHOOK = 3,
    NOLASER = 4,
    THROUGH_CUT = 5,
    THROUGH = 6,
    JUMP = 7,
    FREEZE = 9,
    TELEINEVIL = 10,
    UNFREEZE = 11,
    DFREEZE = 12,
    DUNFREEZE = 13,
    TELEINWEAPON = 14,
    TELEINHOOK = 15,
    WALLJUMP = 16,
    EHOOK_ENABLE = 17,
    EHOOK_DISABLE = 18,
    HIT_ENABLE = 19,
    HIT_DISABLE = 20,
    SOLO_ENABLE = 21,
    SOLO_DISABLE = 22
}
export declare enum TileFlags {
    FLIP_X = 1,
    FLIP_Y = 2,
    OPAQUE = 4,
    ROTATE = 8
}
export declare enum TilemapLayerType {
    TILES = 0,
    GAME = 1,
    TELE = 2,
    SPEEDUP = 4,
    FRONT = 8,
    SWITCH = 16,
    TUNE = 32
}
export interface Tile {
    id: number;
    flags: number;
}
export interface TeleTile {
    number: number;
    id: number;
}
export interface SpeedupTile {
    force: number;
    max_speed: number;
    id: number;
    angle: number;
}
export interface SwitchTile {
    number: number;
    id: number;
    flags: number;
    delay: number;
}
export interface TuneTile {
    number: number;
    id: number;
}
export interface TileLayer {
    width: number;
    height: number;
    layer_type: TilemapLayerType;
    name: string;
    detail: boolean;
    tiles?: Tile[][];
    tele_tiles?: TeleTile[][];
    speedup_tiles?: SpeedupTile[][];
    switch_tiles?: SwitchTile[][];
    tune_tiles?: TuneTile[][];
}
export interface LayerGroup {
    name: string;
    x_offset: number;
    y_offset: number;
    x_parallax: number;
    y_parallax: number;
    clipping: boolean;
    layers: TileLayer[];
}
export interface MapInfo {
    datafile_version: number;
    groups: LayerGroup[];
    game_layer?: TileLayer;
    front_layer?: TileLayer;
    tele_layer?: TileLayer;
}
export declare class TwMapParser {
    static parse(buf: Buffer): MapInfo;
    static get_tile(map: MapInfo, x: number, y: number): Tile | undefined;
    static is_solid(tile?: Tile): boolean;
    static is_nohook(tile?: Tile): boolean;
    static is_freeze(tile?: Tile): boolean;
    static is_dfreeze(tile?: Tile): boolean;
    static is_hookthrough(tile?: Tile): boolean;
    static is_death(tile?: Tile): boolean;
    static is_air(tile?: Tile): boolean;
    static tile_name(id: number): string;
    private static parse_datafile;
    private static parse_map;
    private static parse_tiles;
    private static parse_tele_tiles;
    private static parse_speedup_tiles;
    private static parse_switch_tiles;
    private static parse_tune_tiles;
    private static get_data_index;
    private static decode_i32_string;
    private static flat_to_2d;
}
export default TwMapParser;
