import { ImageActionContentType, ImageActionTypes } from "../../action/actionTypes";
import { Image } from "../../elements/displayable/image";
import { GameState } from "../../../player/gameState";
import { ContentNode } from "../../action/tree/actionTree";
import { TypedAction } from "../../action/actions";
import { Color } from "../../types";
import { ActionExecutionInjection, ExecutedActionResult } from "../../action/action";
import { LogicAction } from "../../action/logicAction";
import { Story } from "../../elements/story";
export declare class ImageAction<T extends typeof ImageActionTypes[keyof typeof ImageActionTypes] = typeof ImageActionTypes[keyof typeof ImageActionTypes]> extends TypedAction<ImageActionContentType, T, Image> {
    static ActionTypes: {
        readonly action: "image:action";
        readonly setSrc: "image:setSrc";
        readonly flush: "image:flush";
        readonly initWearable: "image:initWearable";
        readonly setAppearance: "image:setAppearance";
        readonly setDarkness: "image:setDarkness";
    };
    static resolveTagSrc(image: Image, tags: string[]): string;
    static resolveCurrentSrc(image: Image): string | Color;
    type: T;
    contentNode: ContentNode<ImageActionContentType[T]>;
    executeAction(state: GameState, injection: ActionExecutionInjection): ExecutedActionResult;
    stringify(_story: Story, _seen: Set<LogicAction.Actions>, _strict: boolean): string;
}
