type Action = { action: () => void; masterActions?: T[]; }; type ActionMapType = { [key in T]: Action; }; export declare class UpdateController { private _actionMap; private _mapActionByState; private _state; private _locker; private _actions; constructor(_actionMap: ActionMapType, _mapActionByState: (stateProvider: () => S, actionName: T) => T); beginUpdate(): void; endUpdate(): void; commitUpdate(): void; addAction(actionName: T): void; switchControlState(controlState: S): void; getControlState(): S; } export {};