import ActionSet from "./ActionSet";
import Action from "./Action";
import IActionGroup from "./IActionGroup";
import IScriptRequirements from "./IScriptRequirements";
import ICommandRequirements from "./ICommandRequirements";
import Test from "../gameTest/Test";
import ActionSetScope from "./ActionSetScope";
import Location from "../minecraft/Location";
import BlockLocation from "../minecraft/BlockLocation";
import IWorld from "../minecraft/IWorld";
import { ActionContextType } from "./IAction";
import IGetSetPropertyObject from "../dataform/IGetSetPropertyObject";
import { IActionable } from "./IActionable";
import ICommandOptions from "./ICommandOptions";
import { IScriptGenerationOptions } from "../script/ActionSetScriptGenerator";
import IScriptGenerationContext, { ScriptGenerationPlacement } from "./IScriptGenerationContext";
export default class ActionGroup implements IGetSetPropertyObject, IActionable {
    data: IActionGroup;
    _actionSet?: ActionSet;
    actions: (Action | ActionGroup)[];
    expectedContext: ActionContextType;
    _groupAction?: Action;
    private _onPropertyChanged;
    get groupActionType(): string | undefined;
    set groupActionType(newGat: string | undefined);
    get onPropertyChanged(): import("ste-events").IEvent<Action, string>;
    get actionSet(): ActionSet | undefined;
    set actionSet(newActionSet: ActionSet | undefined);
    get id(): string | undefined;
    set id(newId: string | undefined);
    get name(): string | undefined;
    set name(newName: string | undefined);
    get typeId(): string;
    get canvasX(): number | undefined;
    set canvasX(inboundX: number | undefined);
    get canvasY(): number | undefined;
    set canvasY(inboundY: number | undefined);
    constructor(data: IActionGroup, actionSet?: ActionSet, doNotHydrate?: boolean);
    getScriptRequirements(options: IScriptGenerationOptions): {};
    getCommandRequirements(options: ICommandOptions): {};
    addScriptLines(lines: string[], options: IScriptGenerationOptions, context: IScriptGenerationContext, placement: ScriptGenerationPlacement): void;
    addCommandLines(lines: string[], indent: number, options: ICommandOptions): void;
    getProperty(id: string): any;
    setProperty(id: string, value: any): void;
    ensureGroupAction(): void;
    get groupAction(): Action;
    getBaseValue(): any;
    setBaseValue(value: any): void;
    getArgumentAsNumber(name: string): number;
    validateArgumentIsType(name: string, type: string): boolean;
    _hydrate(): void;
    _hydrateGroupAction(): void;
    startRun(world?: IWorld, test?: Test): void;
    run(parentScope: ActionSetScope): void;
    setActions(newActionList: (Action | ActionSet)[]): void;
    absolutizeLocation(location: Location): Location;
    absolutizeBlockLocation(location: BlockLocation): BlockLocation;
    relativizeLocation(location: Location): Location;
    relativizeBlockLocation(location: BlockLocation): BlockLocation;
    addAction(action: Action | ActionGroup): void;
    static mergeScriptOptions(source: IScriptGenerationOptions, add: IScriptGenerationOptions): void;
    static mergeScriptRequirements(source: IScriptRequirements, add: IScriptRequirements): void;
    static mergeCommandRequirements(source: ICommandRequirements, add: ICommandRequirements): void;
    static addLine(lines: string[], indent: number, line: string): void;
    static getIndentSpaces(indent: number): string;
    ensureLoaded(): void;
    removeAction(removeAction: Action): void;
}
