import { ImageSpriteMemory, VideoSpriteMemory, ContainerMemory, ContainerChild, StepLabelPropsType, StorageElementType } from '@drincs/pixi-vn';
import { P as PixiVNJsonOperation, a as PixiVNJsonIfElse, b as PixiVNJsonOperationString, c as PixiVNJsonSound, d as PixiVNJsonCanvasImageVideoShow, e as PixiVNJsonImageEdit, f as PixiVNJsonCanvasRemove, g as PixiVNJsonVideoEdit, h as PixiVNJsonVideoPauseResume, i as PixiVNJsonCanvasImageContainerShow, j as PixiVNJsonImageContainerEdit, k as PixiVNJsonCanvasTextShow, l as PixiVNJsonTextEdit, m as PixiVNJsonUnknownEdit, n as PixiVNJsonValueSet, o as PixiVNJsonOnlyStorageSet, p as PixiVNJsonNarration, q as PixiVNJsonCanvasEffect, r as PixiVNJsonCanvasAnimate, s as PixiVNJsonValueGet, t as PixiVNJsonArithmeticOperations, u as PixiVNJsonConditions, v as PixiVNJsonConditionalStatements, w as PixiVNJsonLabelStep } from './PixiVNJsonLabelStep-B335RwgE.cjs';
import '@drincs/pixi-vn/motion';
import 'pixi.js';

declare class JsonUnifier {
    /**
     * Registers the operation handlers that pixi-vn-json will delegate to at runtime.
     * Call this once at application startup (e.g. via {@link init}) before importing any labels.
     *
     * All parameters are optional except `setInitialStorageValue`, which is required because
     * it must be available for initial-operation processing during label import.
     */
    static init(options: {
        loadAssets?: (origin: PixiVNJsonOperation | PixiVNJsonIfElse<PixiVNJsonOperation> | PixiVNJsonOperationString) => Promise<void> | void;
        soundOperation?: (operation: PixiVNJsonSound) => void;
        imageOperation?: (operation: PixiVNJsonCanvasImageVideoShow | PixiVNJsonImageEdit | PixiVNJsonCanvasRemove) => Promise<void>;
        videoOperation?: (operation: PixiVNJsonCanvasImageVideoShow | PixiVNJsonCanvasRemove | PixiVNJsonVideoEdit | PixiVNJsonVideoPauseResume) => Promise<void>;
        imageContainerOperation?: (operation: PixiVNJsonCanvasRemove | PixiVNJsonCanvasImageContainerShow | PixiVNJsonImageContainerEdit) => Promise<void>;
        textOperation?: (operation: PixiVNJsonCanvasRemove | PixiVNJsonCanvasTextShow | PixiVNJsonTextEdit) => Promise<void>;
        canvasElementOperation?: (operation: PixiVNJsonCanvasRemove | PixiVNJsonUnknownEdit<ImageSpriteMemory | VideoSpriteMemory | ContainerMemory<ContainerChild>>) => Promise<void>;
        setStorageValue?: (value: PixiVNJsonValueSet, props?: StepLabelPropsType) => void;
        setInitialStorageValue: (value: PixiVNJsonOnlyStorageSet, props?: StepLabelPropsType) => void;
        narrationOperation?: (operation: PixiVNJsonNarration) => void;
        effectOperation?: (operation: PixiVNJsonCanvasEffect) => Promise<void>;
        animateOperation?: (operation: PixiVNJsonCanvasAnimate) => void;
        getLogichValue?: <T = StorageElementType>(value: T | PixiVNJsonValueGet | PixiVNJsonArithmeticOperations | PixiVNJsonConditions | PixiVNJsonConditionalStatements<T | PixiVNJsonValueGet | PixiVNJsonArithmeticOperations | PixiVNJsonConditions>, props?: StepLabelPropsType) => T | undefined;
        getConditionalStep?: (originalStep: PixiVNJsonLabelStep, props?: StepLabelPropsType) => PixiVNJsonLabelStep;
    }): void;
    private static _loadAssets;
    /** Registered handler for loading/lazy-loading assets. */
    static get loadAssets(): (origin: PixiVNJsonOperation | PixiVNJsonIfElse<PixiVNJsonOperation> | PixiVNJsonOperationString) => Promise<void> | void;
    private static _soundOperation;
    /** Registered handler for sound play/stop/pause/resume/edit operations. */
    static get soundOperation(): (operation: PixiVNJsonSound) => void;
    private static _imageOperation;
    /** Registered handler for {@link ImageSprite} show/edit/remove operations. */
    static get imageOperation(): (operation: PixiVNJsonCanvasImageVideoShow | PixiVNJsonImageEdit | PixiVNJsonCanvasRemove) => Promise<void>;
    private static _videoOperation;
    /** Registered handler for {@link VideoSprite} show/edit/remove/pause/resume operations. */
    static get videoOperation(): (operation: PixiVNJsonCanvasImageVideoShow | PixiVNJsonCanvasRemove | PixiVNJsonVideoEdit | PixiVNJsonVideoPauseResume) => Promise<void>;
    private static _imageContainerOperation;
    static get imageContainerOperation(): (operation: PixiVNJsonCanvasRemove | PixiVNJsonCanvasImageContainerShow | PixiVNJsonImageContainerEdit) => Promise<void>;
    private static _textOperation;
    /** Registered handler for {@link Text} show/edit/remove operations. */
    static get textOperation(): (operation: PixiVNJsonCanvasRemove | PixiVNJsonCanvasTextShow | PixiVNJsonTextEdit) => Promise<void>;
    private static _canvasElementOperation;
    /** Registered handler for generic canvas-element edit/remove operations. */
    static get canvasElementOperation(): (operation: PixiVNJsonCanvasRemove | PixiVNJsonUnknownEdit<ImageSpriteMemory | VideoSpriteMemory | ContainerMemory<ContainerChild>>) => Promise<void>;
    private static _setStorageValue;
    /** Registered handler for setting a storage value during label execution. */
    static get setStorageValue(): (value: PixiVNJsonValueSet, props?: StepLabelPropsType) => void;
    private static _setInitialStorageValue;
    /** Registered handler for setting a default (initial) storage value at import time. */
    static get setInitialStorageValue(): (value: PixiVNJsonOnlyStorageSet, props?: StepLabelPropsType) => void;
    private static _narrationOperation;
    /** Registered handler for narration operations (input requests, dialogue resets). */
    static get narrationOperation(): (operation: PixiVNJsonNarration) => void;
    private static _effectOperation;
    /** Registered handler for canvas visual effects (e.g. shake). */
    static get effectOperation(): (operation: PixiVNJsonCanvasEffect) => Promise<void>;
    private static _animateOperation;
    /** Registered handler for keyframe animation operations. */
    static get animateOperation(): (operation: PixiVNJsonCanvasAnimate) => void;
    private static _getLogichValue;
    /** Registered handler that evaluates a JSON logic expression to a plain value. */
    static get getLogichValue(): <T = StorageElementType>(value: T | PixiVNJsonValueGet | PixiVNJsonArithmeticOperations | PixiVNJsonConditions | PixiVNJsonConditionalStatements<T | PixiVNJsonValueGet | PixiVNJsonArithmeticOperations | PixiVNJsonConditions>, props?: StepLabelPropsType) => T | undefined;
    private static _getConditionalStep;
    /** Registered handler that resolves a label step's `conditionalStep` field. */
    static get getConditionalStep(): (originalStep: PixiVNJsonLabelStep, props?: StepLabelPropsType) => PixiVNJsonLabelStep;
}

export { JsonUnifier };
