/**
 * @file RPGMakerImporter.ts
 * @description RPG Maker Map Importer
 * PRO-1.3: Scene Format Interoperability
 *
 * Supports RPG Maker MV/MZ JSON map format.
 *
 * File Types:
 * - Map*.json - Map files
 * - Tilesets.json - Tileset definitions
 * - Actors.json, Enemies.json, etc. - Database files
 */
import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ImportError } from './SceneImporter';
/** RPG Maker MV/MZ Map */
export interface RPGMakerMap {
    autoplayBgm: boolean;
    autoplayBgs: boolean;
    battleback1Name: string;
    battleback2Name: string;
    bgm: RPGMakerAudio;
    bgs: RPGMakerAudio;
    disableDashing: boolean;
    displayName: string;
    encounterList: RPGMakerEncounter[];
    encounterStep: number;
    height: number;
    width: number;
    note: string;
    parallaxLoopX: boolean;
    parallaxLoopY: boolean;
    parallaxName: string;
    parallaxShow: boolean;
    parallaxSx: number;
    parallaxSy: number;
    scrollType: number;
    specifyBattleback: boolean;
    tilesetId: number;
    data: number[];
    events: (RPGMakerEvent | null)[];
}
/** RPG Maker Event */
export interface RPGMakerEvent {
    id: number;
    name: string;
    note: string;
    x: number;
    y: number;
    pages: RPGMakerEventPage[];
}
/** RPG Maker Event Page */
export interface RPGMakerEventPage {
    conditions: RPGMakerConditions;
    directionFix: boolean;
    image: RPGMakerEventImage;
    list: RPGMakerCommand[];
    moveFrequency: number;
    moveRoute: RPGMakerMoveRoute;
    moveSpeed: number;
    moveType: number;
    priorityType: number;
    stepAnime: boolean;
    through: boolean;
    trigger: number;
    walkAnime: boolean;
}
/** RPG Maker Event Image */
export interface RPGMakerEventImage {
    characterIndex: number;
    characterName: string;
    direction: number;
    pattern: number;
    tileId: number;
}
/** RPG Maker Event Conditions */
export interface RPGMakerConditions {
    actorId: number;
    actorValid: boolean;
    itemId: number;
    itemValid: boolean;
    selfSwitchCh: string;
    selfSwitchValid: boolean;
    switch1Id: number;
    switch1Valid: boolean;
    switch2Id: number;
    switch2Valid: boolean;
    variableId: number;
    variableValid: boolean;
    variableValue: number;
}
/** RPG Maker Event Command */
export interface RPGMakerCommand {
    code: number;
    indent: number;
    parameters: unknown[];
}
/** RPG Maker Move Route */
export interface RPGMakerMoveRoute {
    list: RPGMakerMoveCommand[];
    repeat: boolean;
    skippable: boolean;
    wait: boolean;
}
/** RPG Maker Move Command */
export interface RPGMakerMoveCommand {
    code: number;
    parameters?: unknown[];
}
/** RPG Maker Audio */
export interface RPGMakerAudio {
    name: string;
    pan: number;
    pitch: number;
    volume: number;
}
/** RPG Maker Encounter */
export interface RPGMakerEncounter {
    regionSet: number[];
    troopId: number;
    weight: number;
}
/** RPG Maker Tileset Definition */
export interface RPGMakerTileset {
    id: number;
    flags: number[];
    mode: number;
    name: string;
    note: string;
    tilesetNames: string[];
}
/** RPG Maker Actor */
export interface RPGMakerActor {
    id: number;
    battlerName: string;
    characterIndex: number;
    characterName: string;
    classId: number;
    equips: number[];
    faceIndex: number;
    faceName: string;
    traits: RPGMakerTrait[];
    initialLevel: number;
    maxLevel: number;
    name: string;
    nickname: string;
    note: string;
    profile: string;
}
/** RPG Maker Trait */
export interface RPGMakerTrait {
    code: number;
    dataId: number;
    value: number;
}
/** RPG Maker Common Event */
export interface RPGMakerCommonEvent {
    id: number;
    list: RPGMakerCommand[];
    name: string;
    switchId: number;
    trigger: number;
}
export declare class RPGMakerImporter extends SceneImporter {
    private tilesets;
    private commonEvents;
    constructor();
    canHandle(filePath: string): boolean;
    import(options: ImportOptions): Promise<ImportResult>;
    parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | null>;
    validate(sourcePath: string): Promise<ImportError[]>;
    private isMapFile;
    private convertMapToScene;
    private convertMapToParsed;
    private createTilemapLayers;
    private extractLayerData;
    private convertEvent;
    private convertEventToParsed;
    private getActivePage;
    private getTriggerName;
    private getPriorityName;
    private simplifyCommands;
    private createParallaxEntity;
    private readFile;
    private getDataPath;
    private extractFileName;
}
export declare function createRPGMakerImporter(): RPGMakerImporter;
