/// <reference types="node" />
import Jimp from "jimp";
import { MapModel } from "./map-model";
export interface MapParserConfig {
    verbose: boolean;
    /**
     * Resolution of tile mipmaps. Can be 4, 8, 16 or 32. Each higher mipmap level doubles the final output resolution, and also resource usage.
     * @default 4
     * */
    mipmapSize: 4 | 8 | 16 | 32;
    /**
     * If you don't want textureMap, set this to true to speed up parsing.
     * @default false
     */
    skipSmt: boolean;
}
export declare class MapParser {
    protected config: MapParserConfig;
    constructor(config?: Partial<MapParserConfig>);
    parseMap(mapFilePath: string): Promise<MapModel.Map>;
    protected extractSd7(sd7Path: string, outPath: string): Promise<{
        smf: Buffer;
        smt: Buffer;
        smd?: Buffer;
        smfName?: string;
        mapInfo?: Buffer;
    }>;
    protected extractSdz(sdzPath: string, outPath: string): Promise<{
        smf: Buffer;
        smt: Buffer;
        smd?: Buffer;
        smfName?: string;
        mapInfo?: Buffer;
    }>;
    protected parseSMF(smfBuffer: Buffer): Promise<MapModel.SMF>;
    protected parseSMT(smtBuffer: Buffer, tileIndexes: number[], mapWidthUnits: number, mapHeightUnits: number, mipmapSize: 4 | 8 | 16 | 32): Promise<Jimp>;
    protected parseMapInfo(buffer: Buffer): Promise<MapModel.MapInfo>;
    protected parseSMD(buffer: Buffer): Promise<MapModel.SMD>;
    protected cloneTile(tile: Buffer[]): Buffer[];
    protected joinTilesHorizontally(tiles: Buffer[][], mipmapSize: 4 | 8 | 16 | 32): Buffer;
    protected cleanup(tmpDir: string): Promise<void>;
    protected sigint(tmpDir: string): Promise<void>;
}
