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

/**
 * Loads or lazily-loads asset bundles/aliases described by a JSON operation.
 * Supports both individual asset aliases (`type: "assets"`) and named bundles
 * (`type: "bundle"`), each with `"load"` (blocking) or `"lazyload"` (background) variants.
 *
 * @param origin - The operation or conditional expression that describes what to load.
 */
declare function loadAssets(origin: PixiVNJsonOperation | PixiVNJsonIfElse<PixiVNJsonOperation> | PixiVNJsonOperationString): Promise<void>;

/**
 * Handles show, edit, and remove operations for {@link ImageSprite} canvas elements.
 *
 * @param operation - The image operation descriptor.
 */
declare function imageOperation(operation: PixiVNJsonCanvasImageVideoShow | PixiVNJsonImageEdit | PixiVNJsonCanvasRemove): Promise<void>;
/**
 * Handles show, edit, remove, pause, and resume operations for {@link VideoSprite} canvas elements.
 *
 * @param operation - The video operation descriptor.
 */
declare function videoOperation(operation: PixiVNJsonCanvasRemove | PixiVNJsonCanvasImageVideoShow | PixiVNJsonVideoEdit | PixiVNJsonVideoPauseResume): Promise<void>;
/**
 * Handles show, edit, and remove operations for {@link ImageContainer} canvas elements.
 *
 * @param operation - The image-container operation descriptor.
 */
declare function imageContainerOperation(operation: PixiVNJsonCanvasRemove | PixiVNJsonCanvasImageContainerShow | PixiVNJsonImageContainerEdit): Promise<void>;
/**
 * Handles show, edit, and remove operations for {@link Text} canvas elements.
 * On show, the text content is run through the active {@link translator} before display.
 *
 * @param operation - The text operation descriptor.
 */
declare function textOperation(operation: PixiVNJsonCanvasRemove | PixiVNJsonCanvasTextShow | PixiVNJsonTextEdit): Promise<void>;
/**
 * Handles edit and remove operations for any canvas element whose specific type is unknown.
 * Useful as a generic fallback when the element type is not determined at the call site.
 *
 * @param operation - The generic canvas-element operation descriptor.
 */
declare function canvasElementOperation(operation: PixiVNJsonUnknownEdit<ImageSpriteMemory | VideoSpriteMemory | ContainerMemory<ContainerChild>> | PixiVNJsonCanvasRemove): Promise<void>;
/**
 * Applies a visual effect (e.g. shake) to a canvas element.
 *
 * @param operation - The canvas effect descriptor.
 */
declare function effectOperation(operation: PixiVNJsonCanvasEffect): Promise<void>;
/**
 * Starts a keyframe animation or animation sequence on a canvas element.
 *
 * @param operation - The animate operation descriptor.
 */
declare function animateOperation(operation: PixiVNJsonCanvasAnimate): void;

/**
 * Handles narration-related operations such as requesting player input or
 * clearing the current dialogue line.
 *
 * @param operation - The narration operation descriptor.
 */
declare function narrationOperation(operation: PixiVNJsonNarration): void;

/**
 * Handles all sound operations: play, stop, pause, resume, and property editing.
 * Supports targeting individual sounds, channels, or all sounds at once.
 *
 * @param operation - The sound operation descriptor.
 */
declare function soundOperation(operation: PixiVNJsonSound): void;

/**
 * Sets a value in the appropriate storage layer (flag storage, persistent storage,
 * temporary storage, or label parameters) as described by the operation.
 *
 * @param value - The storage-set operation descriptor.
 * @param props - The current step label props (used to resolve dynamic values).
 */
declare function setStorageValue(value: PixiVNJsonValueSet, props?: StepLabelPropsType): void;
/**
 * Sets a default (initial) value in persistent or temporary storage.
 * Unlike {@link setStorageValue}, this only applies to `"storage"` and `"tempstorage"` types
 * and writes to `storage.default` so the value is used as a fallback.
 *
 * @param value - The initial storage-set operation descriptor.
 * @param props - The current step label props (used to resolve dynamic values).
 */
declare function setInitialStorageValue(value: PixiVNJsonOnlyStorageSet, props?: StepLabelPropsType): void;
/**
 * Resolves a JSON logic value (storage get, arithmetic, condition, function, conditional statement)
 * down to a plain TypeScript value of type `T`.
 *
 * This is the main evaluation entry-point: conditional statements are unwrapped first,
 * then the remaining expression type is dispatched to the appropriate handler.
 *
 * @param value - The value or expression to resolve.
 * @param props - The current step label props passed down through the call chain.
 * @returns The resolved value, or `undefined` if the expression cannot be evaluated.
 */
declare function getLogichValue<T = StorageElementType>(value: T | PixiVNJsonValueGet | PixiVNJsonArithmeticOperations | PixiVNJsonConditions | PixiVNJsonFunction | PixiVNJsonConditionalStatements<T | PixiVNJsonValueGet | PixiVNJsonArithmeticOperations | PixiVNJsonConditions>, props?: StepLabelPropsType): T | undefined;
/**
 * Get the value from the conditional statements.
 * @param statement is the conditional statements object
 * @returns the value from the conditional statements
 */
declare function getValueFromConditionalStatements<T>(statement: PixiVNJsonConditionalResultToCombine<T> | PixiVNJsonConditionalStatements<T> | T | undefined, props?: StepLabelPropsType): T | undefined;
/**
 * Resolves the `conditionalStep` field of a label step and merges the result back
 * into the step, recursively, until no more conditional overrides remain.
 *
 * Undefined properties on the resolved conditional step are deleted so they do not
 * overwrite existing values on the base step.
 *
 * @param originalStep - The label step that may contain a `conditionalStep` expression.
 * @param props - The current step label props used to evaluate the condition.
 * @returns The fully resolved label step.
 */
declare function getConditionalStep(originalStep: PixiVNJsonLabelStep, props?: StepLabelPropsType): PixiVNJsonLabelStep;

export { animateOperation, canvasElementOperation, effectOperation, getConditionalStep, getLogichValue, getValueFromConditionalStatements, imageContainerOperation, imageOperation, loadAssets, narrationOperation, setInitialStorageValue, setStorageValue, soundOperation, textOperation, videoOperation };
