import { AddStyleTextAction, InsertTextAction, RemoveStyleTextAction, RemoveTextAction, TextAlignmentAction, TextUnWrappingAction, TextWrappingAction } from './actions/Text.actions';
import { CreateCoverAction, CreatePageAction, RemoveCoverAction, RemovePageAction, RenamePageAction, SelectPageAction } from './actions/Page.actions';
import { ChangeTypeWidgetAction, CreateWidgetAction, RemoveWidgetAction, TransferWidgetAction } from './actions/Widget.actions';
import { StateDocument, StatePage, StateWidget } from './State';
import { Text } from './descriptiveClasses/Text';
import { CheckedAction, DeIncrementLevelAction, IncrementLevelAction } from './actions/List.actions';
import { AddColumnAction, AddRowAction, SetCellValueAction, RemoveColumnAction, RenameColumnAction, RenameTableAction, InsertRowAction, RemoveRowAction, InsertColumnAction, ApplyFilterAction, SortColumnAction, ChangeTypeColumnAction, CreateWidgetTableAction, RemoveWidgetTableAction, CreateDataViewAction, RemoveDataViewAction, ResizeColumnAction, AddSelectAction, UpdateSelectAction, RemoveSelectAction } from './actions/Table.actions';
import { TableWidget } from './descriptiveClasses/Table';
import { LinkTextAction, LinkUrlAction } from './actions/Link.actions';
import { HyperLink } from './descriptiveClasses/HyperLink';
import { ChangeParamsVideoAction } from './actions/Video.actions';
import { VideoWidget } from './descriptiveClasses/Video';
import { ChangeParamsImageAction } from './actions/Image.actions';
import { ImageWidget } from './descriptiveClasses/Image';
import { CreateDocumentAction, RenameDocumentAction } from '../StateChanger.module';
import * as DM from '../../data/Data.module';
/**
 * Выполняемые операции для изменения компонента
 */
export declare class Operations {
    /**
     * Переименовать документ
     * @param action Действие
     * @param state Состояние
     * @returns Состояние документа
     */
    renameDocument(action: RenameDocumentAction, state: StateDocument | string): StateDocument | string;
    /**
     * Создать документ
     * @param action Действие для создания документа
     * @returns JSON Документ
     */
    createDocument(action: CreateDocumentAction): string;
    /**
     * Создать страницу
     * @param action Действие для создания страницы
     * @param state Состояния документа
     * @returns Новое состояние документа
     */
    createPage(action: CreatePageAction, state?: StateDocument, ds?: DM.DataSet): StateDocument | string;
    /**
     * Удалить страницу
     * @param action Действие для удаление страницы
     * @param state Состояния документа
     * @returns Новое состояние документа
     */
    removePage(action: RemovePageAction, state: StateDocument, ds: DM.DataSet): StateDocument;
    /**
     * Переименовать страницу
     * @param action Действие
     * @param state Состояния документа
     * @returns Новое состояние документа
     */
    renamePage(action: RenamePageAction, state: StateDocument | string): StateDocument | string;
    /**
     * Сделать страницу активной
     * @param action Действие для выбора страницы
     * @param state Состояние документа
     * @returns Новое состояние документа
     */
    selectPage(action: SelectPageAction, state: StateDocument): StateDocument;
    /**
     * Создать виджет
     * @param action Действие для создания виджета
     * @param state Состояния страницы
     * @returns Новое состояние страницы
     */
    createWidget(action: CreateWidgetAction, state?: StatePage): StatePage | string;
    /**
     * Изменить тип компонента
     * @param action Действие для изменения типа компонента
     * @param state Состояние страницы
     * @returns Новое состояние страницы
     */
    changeTypeWidget(action: ChangeTypeWidgetAction, state: StatePage | string): StatePage | string;
    /**
     * Удалить виджет
     * @param action Действие для удаление виджета
     * @param state Состояния страницы
     * @returns Новое состояние страницы
     */
    removeWidget(action: RemoveWidgetAction, state: StatePage): StatePage;
    /**
     * Переместить виджет
     * @param action Действие для перемещения виджета
     * @param state Состояния страницы
     * @returns Новое состояние страницы
     */
    transferWidget(action: TransferWidgetAction, state: StatePage): StatePage;
    /**
     * Перенос текста на новый виджет
     * @param action Действие
     * @param state Состояние страницы
     * @returns Новое состояние
     */
    textWrapping(action: TextWrappingAction, state: StatePage | string): StatePage | string;
    /**
     * Обратный перенос текста
     * @param action Действие
     * @param state Состояние страницы
     * @returns Состояние страницы
     */
    textUnWrapping(action: TextUnWrappingAction, state: StatePage | string): StatePage | string;
    /**
     * Вставить текст
     * @param action Действие для вставки текста
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    insertText(action: InsertTextAction, state: StateWidget | string): StateWidget | string;
    /**
     * Удалить текст
     * @param action Действие для удаление текста
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    removeText(action: RemoveTextAction, state: StateWidget | string): StateWidget | string;
    /**
     * Обернуть кусок текста стилем Bold
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    addStyleText(action: AddStyleTextAction, state: StateWidget | string): StateWidget | string;
    /**
     * Выравнивание текста
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    textAlignment(action: TextAlignmentAction, state: StateWidget | string): StateWidget | string;
    /**
     * Удалить стиль из текста
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    removeStyleText(action: RemoveStyleTextAction, state: StateWidget): StateWidget;
    /**
     * Увеличить уровень списка
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    incrementLevel(action: IncrementLevelAction, state: StatePage | string): StatePage | string;
    /**
     * Уменьшить уровень списка
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    deIncrementLevel(action: DeIncrementLevelAction, state: StatePage | string): StatePage | string;
    /**
     * Пометить элемент списка
     * @param action Действие
     * @param state Состояние
     * @returns Новое состояние
     */
    checked(action: CheckedAction, state: StatePage | string): StatePage | string;
    /**
     * Создать виджет с таблицей
     * @param action Действие для создания виджета с таблицей
     * @param state Состояние страницы
     * @param ds Новое состояние страницы
     */
    createWidgetTable(action: CreateWidgetTableAction, state?: StatePage, ds?: DM.DataSet): StatePage | string;
    /**
     * Удалить виджет с таблицей
     * @param action Действие для удаление виджета с таблицей
     * @param state Состояние страницы
     * @param ds Новое состояние страницы
     */
    removeWidgetTable(action: RemoveWidgetTableAction, state: StatePage, ds: DM.DataSet): void;
    /**
     * Создать представление таблицы
     * @param action Действие для создания
     * @param state Состояние виджета
     * @param ds Новое состояние виджета
     */
    createDataView(action: CreateDataViewAction, state?: TableWidget | string, ds?: DM.DataSet): TableWidget | string;
    /**
     * Удалить представления таблицы
     * @param action Действие для удаления
     * @param state Состояние страницы
     * @param ds Новое состояние страницы
     */
    removeDataView(action: RemoveDataViewAction, state: TableWidget, ds: DM.DataSet): void;
    /**
     * Добавить колонку
     * @param action Действие для добавления
     * @param state Текущие состояние таблицы
     * @returns Новое состояние таблицы
     */
    addColumn(action: AddColumnAction, state?: TableWidget): StateWidget | string;
    /**
     * Сортировка колонки
     * @param action Действие для сотрировки
     * @param state Текущие состояние таблицы
     * @returns Новое состояние таблицы
     */
    sortColumn(action: SortColumnAction, state: TableWidget | string): StateWidget | string;
    /**
     * Удалить колонку
     * @param action Действие для удаления
     * @param state Текущие состояние таблицы
     * @returns Новое состояние таблицы
     */
    removeColumn(action: RemoveColumnAction, state: TableWidget): StateWidget;
    /**
     * Переименовать таблицу
     * @param action Действие для переименования
     * @param state Текущие состояние таблицы
     * @returns Новое состояние таблицы
     */
    renameTable(action: RenameTableAction, state: TableWidget | string): StateWidget | string;
    /**
     * Переименовать колонку
     * @param action Действие для переименования колокни
     * @param state Текущие состояние таблицы
     * @returns Новое состояние таблицы
     */
    renameColumn(action: RenameColumnAction, state: TableWidget | string): StateWidget | string;
    /**
     * Применить фильтр к таблице
     * @param action Действие для фильтра
     * @param state Состояние виджета
     * @param ds DataSet
     * @returns Новое состояние виджета
     */
    applyFilter(action: ApplyFilterAction, state: TableWidget | string): StateWidget | string;
    /**
     * Обновить select
     * @param action Действие для Select
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    updateSelect(action: UpdateSelectAction, state: TableWidget | string): StateWidget | string;
    /**
     * Добавить Select в список
     * @param action Действие для Select
     * @param state Состояние виджета
     * @returns Новое состояние
     */
    addSelect(action: AddSelectAction, state: TableWidget | string): StateWidget | string;
    /**
     * Удалить Select
     * @param action Действие для Select
     * @param state Состяоние виджета
     * @returns Новое состояние виджета
     */
    removeSelect(action: RemoveSelectAction, state: TableWidget | string): StateWidget | string;
    /**
     * Изменить тип колонки
     * @param action Действие для работы с колонкой
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    changeTypeColumn(action: ChangeTypeColumnAction, state: TableWidget | string): StateWidget | string;
    /**
     * Изменить ширину колонки
     * @param action Действие для работы с колонкой
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    resizeColumn(action: ResizeColumnAction, state: TableWidget | string): StateWidget | string;
    /**
     * Добавить строку
     * @param action Действие для добавления строки
     * @param state Состояние виджета
     * @param ds DataSet
     * @returns Новое состояние виджета
     */
    addRow(action: AddRowAction, state?: TableWidget): StateWidget | string;
    /**
     * Вставить строку в позицию N
     * @param action Действие для вставки строки
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    insertRow(action: InsertRowAction, state?: TableWidget): StateWidget | string;
    /**
     * Вставить колонку
     * @param action Действие для вставки колонки
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    insertColumn(action: InsertColumnAction, state?: TableWidget): StateWidget | string;
    /**
     * Изменить состояние строки
     * @param stateRow Старое состояние строки
     * @param mapCell Состояние ячейки
     * @returns Новое состояние строки
     */
    changeStateRow(stateRows: DM.DataItem, rowState: string): string;
    /**
     * Удалить строку
     * @param action Действие для удаления
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    removeRow(action: RemoveRowAction, state?: TableWidget): StateWidget;
    /**
     * Вставить значение в ячейку
     * @param action Действие для вставки
     * @param state Состояние виджета
     * @param ds DataSet
     * @returns Новое состояние виджета
     */
    setCellValue(action: SetCellValueAction, state: TableWidget, ds: DM.DataSet): StateWidget;
    /**
     * Создать обложку
     * @param action Действие
     * @param state Состояние
     * @returns Новое состояние
     */
    createCover(action: CreateCoverAction, state: StatePage | string): StatePage | string;
    /**
     * Удалить обложку
     * @param action Действие
     * @param state Состояние
     * @returns Новое состояние
     */
    removeCover(action: RemoveCoverAction, state: StatePage | string): StatePage | string;
    /**
     * Изменить Url
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    changeUrl(action: LinkUrlAction, state: HyperLink | string): StateWidget | string;
    /**
     * Изменить текст
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    changeText(action: LinkTextAction, state: HyperLink | string): StateWidget | string;
    /**
     * Изменить параметры видео виджета
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    changeParamsVideo(action: ChangeParamsVideoAction, state: VideoWidget | string): StateWidget | string;
    /**
     * Изменить параметры изображения
     * @param action Действие
     * @param state Состояние виджета
     * @returns Новое состояние виджета
     */
    changeParamsImage(action: ChangeParamsImageAction, state: ImageWidget | string): StateWidget | string;
    static shiftStylePosRight(textWidget: Text, insertPos: number, count?: number): void;
    private _shiftStylePosLeft;
    private _recListLevels;
}
