import { EListActions } from './List.actions';
import { EPageActions } from './Page.actions';
import { ETextActions } from './Text.actions';
import { ELinkActions } from './Link.actions';
import { EWidgetActions } from './Widget.actions';
import { ETableActions } from './Table.actions';
import { EVideoActions } from './Video.actions';
import { EImageActions } from './Image.actions';
import { EDocActions } from './Document.actions';
import { IUser } from '../interfaces/IUser';
/**
 * Действие
 */
export declare class Action<T> {
    props: T;
    documentId?: string;
    pageId?: string;
    widgetId?: string;
    /**
     * true - выполнить команду иначе проигнорировать
     */
    execute: boolean;
    /**
     * true - сохранить в стек undo/redo
     */
    useUndoRedo: boolean;
    /**
     * Локальная команда без отправки на сервер
     */
    localComand?: boolean;
    /**
     * Пользователь
     */
    user: IUser;
    /**
     * Тип действия
     */
    readonly type: ActionType;
    constructor(props: T, documentId?: string, pageId?: string, widgetId?: string);
    /**
    * Получить объект для сериализации
    * @returns Объект для сериализации
    */
    toJSON(): any;
}
export declare type ActionType = EDocActions | EPageActions | ETextActions | EWidgetActions | EListActions | ETableActions | ELinkActions | EImageActions | EVideoActions;
