import { VideoActionContentType, VideoActionTypes } from "../../action/actionTypes";
import { TypedAction } from "../../action/actions";
import { Video } from "../../elements/video";
import { GameState } from "../../../player/gameState";
import { Awaitable, Values } from "../../../../util/data";
import type { CalledActionResult } from "../../gameTypes";
import { ActionExecutionInjection } from "../../action/action";
import { LogicAction } from "../../action/logicAction";
import { Story } from "../../elements/story";
export declare class VideoAction<T extends Values<typeof VideoActionTypes> = Values<typeof VideoActionTypes>> extends TypedAction<VideoActionContentType, T, Video> {
    static ActionTypes: {
        readonly action: "video:action";
        readonly show: "video:show";
        readonly hide: "video:hide";
        readonly play: "video:play";
        readonly pause: "video:pause";
        readonly resume: "video:resume";
        readonly stop: "video:stop";
        readonly seek: "video:seek";
    };
    executeAction(gameState: GameState, injection: ActionExecutionInjection): Awaitable<CalledActionResult>;
    private changeStateBase;
    private changeState;
    private changeStateAsync;
    stringify(_story: Story, _seen: Set<LogicAction.Actions>, _strict: boolean): string;
}
