import { ManagedComponent } from "./ManagedComponent";
import { IBlockPermutation } from "./IBlockTypeBehaviorPack";
import IManagedComponentSetItem from "./IManagedComponentSetItem";
import IManagedComponent from "./IManagedComponent";
import Molang from "./Molang";
import IComponent from "./IComponent";
export default class ManagedPermutation implements IManagedComponentSetItem {
    _data?: IBlockPermutation;
    _managed?: {
        [id: string]: IManagedComponent | undefined;
    };
    _conditionMolang: Molang | undefined;
    private _onComponentAdded;
    private _onComponentRemoved;
    private _onComponentChanged;
    constructor(data: IBlockPermutation);
    id: string;
    get onComponentAdded(): import("ste-events").IEvent<ManagedPermutation, IManagedComponent>;
    get onComponentRemoved(): import("ste-events").IEvent<ManagedPermutation, string>;
    get onComponentChanged(): import("ste-events").IEvent<ManagedPermutation, IManagedComponent>;
    get condition(): string | undefined;
    set condition(value: string | undefined);
    get conditionExpression(): Molang;
    addComponent(id: string, componentOrData: ManagedComponent | IComponent | string | string[] | boolean | number[] | number | undefined): IManagedComponent;
    removeComponent(id: string): void;
    getComponent(id: string): IManagedComponent | undefined;
    getAllComponents(): IManagedComponent[];
    getComponents(): IManagedComponent[];
    notifyComponentUpdated(id: string): void;
}
