import { A as Action, E as ExtendedState, B as BaseDocument, R as Reducer, S as SetNameAction, U as UndoAction, a as RedoAction, P as PruneAction, L as LoadStateAction } from './object-581171b5.js';
import { S as SetModelNameInput, a as SetModelIdInput, b as SetModelExtensionInput, c as SetModelDescriptionInput, d as SetAuthorNameInput, e as SetAuthorWebsiteInput, A as AddChangeLogItemInput, U as UpdateChangeLogItemInput, D as DeleteChangeLogItemInput, R as ReorderChangeLogItemsInput, f as AddModuleInput, g as SetModuleNameInput, h as SetModuleDescriptionInput, i as DeleteModuleInput, j as ReorderModulesInput, k as AddOperationErrorInput, l as SetOperationErrorCodeInput, m as SetOperationErrorNameInput, n as SetOperationErrorDescriptionInput, o as SetOperationErrorTemplateInput, p as DeleteOperationErrorInput, q as ReorderOperationErrorsInput, r as AddOperationExampleInput, s as UpdateOperationExampleInput, t as DeleteOperationExampleInput, u as ReorderOperationExamplesInput, v as AddOperationInput, w as SetOperationNameInput, x as SetOperationSchemaInput, y as SetOperationDescriptionInput, z as SetOperationTemplateInput, B as SetOperationReducerInput, M as MoveOperationInput, C as DeleteOperationInput, E as ReorderModuleOperationsInput, F as SetStateSchemaInput, G as SetInitialStateInput, H as AddStateExampleInput, I as UpdateStateExampleInput, J as DeleteStateExampleInput, K as ReorderStateExamplesInput, L as DocumentModelState, N as index_d } from './index.d-00a49bd0.js';

type SetModelNameAction = Action<'SET_MODEL_NAME', SetModelNameInput>;
type SetModelIdAction = Action<'SET_MODEL_ID', SetModelIdInput>;
type SetModelExtensionAction = Action<'SET_MODEL_EXTENSION', SetModelExtensionInput>;
type SetModelDescriptionAction = Action<'SET_MODEL_DESCRIPTION', SetModelDescriptionInput>;
type SetAuthorNameAction = Action<'SET_AUTHOR_NAME', SetAuthorNameInput>;
type SetAuthorWebsiteAction = Action<'SET_AUTHOR_WEBSITE', SetAuthorWebsiteInput>;
type DocumentModelHeaderAction = SetModelNameAction | SetModelIdAction | SetModelExtensionAction | SetModelDescriptionAction | SetAuthorNameAction | SetAuthorWebsiteAction;

type AddChangeLogItemAction = Action<'ADD_CHANGE_LOG_ITEM', AddChangeLogItemInput>;
type UpdateChangeLogItemAction = Action<'UPDATE_CHANGE_LOG_ITEM', UpdateChangeLogItemInput>;
type DeleteChangeLogItemAction = Action<'DELETE_CHANGE_LOG_ITEM', DeleteChangeLogItemInput>;
type ReorderChangeLogItemsAction = Action<'REORDER_CHANGE_LOG_ITEMS', ReorderChangeLogItemsInput>;
type ReleaseNewVersionAction = Action<'RELEASE_NEW_VERSION', never>;
type DocumentModelVersioningAction = AddChangeLogItemAction | UpdateChangeLogItemAction | DeleteChangeLogItemAction | ReorderChangeLogItemsAction | ReleaseNewVersionAction;

type AddModuleAction = Action<'ADD_MODULE', AddModuleInput>;
type SetModuleNameAction = Action<'SET_MODULE_NAME', SetModuleNameInput>;
type SetModuleDescriptionAction = Action<'SET_MODULE_DESCRIPTION', SetModuleDescriptionInput>;
type DeleteModuleAction = Action<'DELETE_MODULE', DeleteModuleInput>;
type ReorderModulesAction = Action<'REORDER_MODULES', ReorderModulesInput>;
type DocumentModelModuleAction = AddModuleAction | SetModuleNameAction | SetModuleDescriptionAction | DeleteModuleAction | ReorderModulesAction;

type AddOperationErrorAction = Action<'ADD_OPERATION_ERROR', AddOperationErrorInput>;
type SetOperationErrorCodeAction = Action<'SET_OPERATION_ERROR_CODE', SetOperationErrorCodeInput>;
type SetOperationErrorNameAction = Action<'SET_OPERATION_ERROR_NAME', SetOperationErrorNameInput>;
type SetOperationErrorDescriptionAction = Action<'SET_OPERATION_ERROR_DESCRIPTION', SetOperationErrorDescriptionInput>;
type SetOperationErrorTemplateAction = Action<'SET_OPERATION_ERROR_TEMPLATE', SetOperationErrorTemplateInput>;
type DeleteOperationErrorAction = Action<'DELETE_OPERATION_ERROR', DeleteOperationErrorInput>;
type ReorderOperationErrorsAction = Action<'REORDER_OPERATION_ERRORS', ReorderOperationErrorsInput>;
type DocumentModelOperationErrorAction = AddOperationErrorAction | SetOperationErrorCodeAction | SetOperationErrorNameAction | SetOperationErrorDescriptionAction | SetOperationErrorTemplateAction | DeleteOperationErrorAction | ReorderOperationErrorsAction;

type AddOperationExampleAction = Action<'ADD_OPERATION_EXAMPLE', AddOperationExampleInput>;
type UpdateOperationExampleAction = Action<'UPDATE_OPERATION_EXAMPLE', UpdateOperationExampleInput>;
type DeleteOperationExampleAction = Action<'DELETE_OPERATION_EXAMPLE', DeleteOperationExampleInput>;
type ReorderOperationExamplesAction = Action<'REORDER_OPERATION_EXAMPLES', ReorderOperationExamplesInput>;
type DocumentModelOperationExampleAction = AddOperationExampleAction | UpdateOperationExampleAction | DeleteOperationExampleAction | ReorderOperationExamplesAction;

type AddOperationAction = Action<'ADD_OPERATION', AddOperationInput>;
type SetOperationNameAction = Action<'SET_OPERATION_NAME', SetOperationNameInput>;
type SetOperationSchemaAction = Action<'SET_OPERATION_SCHEMA', SetOperationSchemaInput>;
type SetOperationDescriptionAction = Action<'SET_OPERATION_DESCRIPTION', SetOperationDescriptionInput>;
type SetOperationTemplateAction = Action<'SET_OPERATION_TEMPLATE', SetOperationTemplateInput>;
type SetOperationReducerAction = Action<'SET_OPERATION_REDUCER', SetOperationReducerInput>;
type MoveOperationAction = Action<'MOVE_OPERATION', MoveOperationInput>;
type DeleteOperationAction = Action<'DELETE_OPERATION', DeleteOperationInput>;
type ReorderModuleOperationsAction = Action<'REORDER_MODULE_OPERATIONS', ReorderModuleOperationsInput>;
type DocumentModelOperationAction = AddOperationAction | SetOperationNameAction | SetOperationSchemaAction | SetOperationDescriptionAction | SetOperationTemplateAction | SetOperationReducerAction | MoveOperationAction | DeleteOperationAction | ReorderModuleOperationsAction;

type SetStateSchemaAction = Action<'SET_STATE_SCHEMA', SetStateSchemaInput>;
type SetInitialStateAction = Action<'SET_INITIAL_STATE', SetInitialStateInput>;
type AddStateExampleAction = Action<'ADD_STATE_EXAMPLE', AddStateExampleInput>;
type UpdateStateExampleAction = Action<'UPDATE_STATE_EXAMPLE', UpdateStateExampleInput>;
type DeleteStateExampleAction = Action<'DELETE_STATE_EXAMPLE', DeleteStateExampleInput>;
type ReorderStateExamplesAction = Action<'REORDER_STATE_EXAMPLES', ReorderStateExamplesInput>;
type DocumentModelStateAction = SetStateSchemaAction | SetInitialStateAction | AddStateExampleAction | UpdateStateExampleAction | DeleteStateExampleAction | ReorderStateExamplesAction;

type DocumentModelAction = DocumentModelHeaderAction | DocumentModelVersioningAction | DocumentModelModuleAction | DocumentModelOperationErrorAction | DocumentModelOperationExampleAction | DocumentModelOperationAction | DocumentModelStateAction;

type ExtendedDocumentModelState = ExtendedState<DocumentModelState>;

declare class DocumentModel_Header extends BaseDocument<DocumentModelState, DocumentModelAction> {
    setModelName(input: SetModelNameInput): this;
    setModelId(input: SetModelIdInput): this;
    setModelExtension(input: SetModelExtensionInput): this;
    setModelDescription(input: SetModelDescriptionInput): this;
    setAuthorName(input: SetAuthorNameInput): this;
    setAuthorWebsite(input: SetAuthorWebsiteInput): this;
}

declare class DocumentModel_Versioning extends BaseDocument<DocumentModelState, DocumentModelAction> {
    addChangeLogItem(input: AddChangeLogItemInput): this;
    updateChangeLogItem(input: UpdateChangeLogItemInput): this;
    deleteChangeLogItem(input: DeleteChangeLogItemInput): this;
    reorderChangeLogItems(input: ReorderChangeLogItemsInput): this;
    releaseNewVersion(): this;
}

declare class DocumentModel_Module extends BaseDocument<DocumentModelState, DocumentModelAction> {
    addModule(input: AddModuleInput): this;
    setModuleName(input: SetModuleNameInput): this;
    setModuleDescription(input: SetModuleDescriptionInput): this;
    deleteModule(input: DeleteModuleInput): this;
    reorderModules(input: ReorderModulesInput): this;
}

declare class DocumentModel_OperationError extends BaseDocument<DocumentModelState, DocumentModelAction> {
    addOperationError(input: AddOperationErrorInput): this;
    setOperationErrorCode(input: SetOperationErrorCodeInput): this;
    setOperationErrorName(input: SetOperationErrorNameInput): this;
    setOperationErrorDescription(input: SetOperationErrorDescriptionInput): this;
    setOperationErrorTemplate(input: SetOperationErrorTemplateInput): this;
    deleteOperationError(input: DeleteOperationErrorInput): this;
    reorderOperationErrors(input: ReorderOperationErrorsInput): this;
}

declare class DocumentModel_OperationExample extends BaseDocument<DocumentModelState, DocumentModelAction> {
    addOperationExample(input: AddOperationExampleInput): this;
    updateOperationExample(input: UpdateOperationExampleInput): this;
    deleteOperationExample(input: DeleteOperationExampleInput): this;
    reorderOperationExamples(input: ReorderOperationExamplesInput): this;
}

declare class DocumentModel_Operation extends BaseDocument<DocumentModelState, DocumentModelAction> {
    addOperation(input: AddOperationInput): this;
    setOperationName(input: SetOperationNameInput): this;
    setOperationSchema(input: SetOperationSchemaInput): this;
    setOperationDescription(input: SetOperationDescriptionInput): this;
    setOperationTemplate(input: SetOperationTemplateInput): this;
    setOperationReducer(input: SetOperationReducerInput): this;
    moveOperation(input: MoveOperationInput): this;
    deleteOperation(input: DeleteOperationInput): this;
    reorderModuleOperations(input: ReorderModuleOperationsInput): this;
}

declare class DocumentModel_State extends BaseDocument<DocumentModelState, DocumentModelAction> {
    setStateSchema(input: SetStateSchemaInput): this;
    setInitialState(input: SetInitialStateInput): this;
    addStateExample(input: AddStateExampleInput): this;
    updateStateExample(input: UpdateStateExampleInput): this;
    deleteStateExample(input: DeleteStateExampleInput): this;
    reorderStateExamples(input: ReorderStateExamplesInput): this;
}

interface DocumentModel$2 extends DocumentModel_Header, DocumentModel_Versioning, DocumentModel_Module, DocumentModel_OperationError, DocumentModel_OperationExample, DocumentModel_Operation, DocumentModel_State {
}
declare class DocumentModel$2 extends BaseDocument<DocumentModelState, DocumentModelAction> {
    static fileExtension: string;
    constructor(initialState?: ExtendedDocumentModelState);
    saveToFile(path: string, name?: string): Promise<string>;
    loadFromFile(path: string): Promise<void>;
    static fromFile(path: string): Promise<DocumentModel$2>;
}

declare const createEmptyDocumentModelState: () => DocumentModelState;
declare const createEmptyExtendedDocumentModelState: () => ExtendedDocumentModelState;

declare const reducer: Reducer<DocumentModelState, DocumentModelAction>;

declare const DocumentModel: typeof DocumentModel$2;
declare const actions: {
    setModelName: (input: SetModelNameInput) => SetModelNameAction;
    setModelId: (input: SetModelIdInput) => SetModelIdAction;
    setModelExtension: (input: SetModelExtensionInput) => SetModelExtensionAction;
    setModelDescription: (input: SetModelDescriptionInput) => SetModelDescriptionAction;
    setAuthorName: (input: SetAuthorNameInput) => SetAuthorNameAction;
    setAuthorWebsite: (input: SetAuthorWebsiteInput) => SetAuthorWebsiteAction;
    addChangeLogItem: (input: AddChangeLogItemInput) => AddChangeLogItemAction;
    updateChangeLogItem: (input: UpdateChangeLogItemInput) => UpdateChangeLogItemAction;
    deleteChangeLogItem: (input: DeleteChangeLogItemInput) => DeleteChangeLogItemAction;
    reorderChangeLogItems: (input: ReorderChangeLogItemsInput) => ReorderChangeLogItemsAction;
    releaseNewVersion: () => ReleaseNewVersionAction;
    addModule: (input: AddModuleInput) => AddModuleAction;
    setModuleName: (input: SetModuleNameInput) => SetModuleNameAction;
    setModuleDescription: (input: SetModuleDescriptionInput) => SetModuleDescriptionAction;
    deleteModule: (input: DeleteModuleInput) => DeleteModuleAction;
    reorderModules: (input: ReorderModulesInput) => ReorderModulesAction;
    addOperationError: (input: AddOperationErrorInput) => AddOperationErrorAction;
    setOperationErrorCode: (input: SetOperationErrorCodeInput) => SetOperationErrorCodeAction;
    setOperationErrorName: (input: SetOperationErrorNameInput) => SetOperationErrorNameAction;
    setOperationErrorDescription: (input: SetOperationErrorDescriptionInput) => SetOperationErrorDescriptionAction;
    setOperationErrorTemplate: (input: SetOperationErrorTemplateInput) => SetOperationErrorTemplateAction;
    deleteOperationError: (input: DeleteOperationErrorInput) => DeleteOperationErrorAction;
    reorderOperationErrors: (input: ReorderOperationErrorsInput) => ReorderOperationErrorsAction;
    addOperationExample: (input: AddOperationExampleInput) => AddOperationExampleAction;
    updateOperationExample: (input: UpdateOperationExampleInput) => UpdateOperationExampleAction;
    deleteOperationExample: (input: DeleteOperationExampleInput) => DeleteOperationExampleAction;
    reorderOperationExamples: (input: ReorderOperationExamplesInput) => ReorderOperationExamplesAction;
    addOperation: (input: AddOperationInput) => AddOperationAction;
    setOperationName: (input: SetOperationNameInput) => SetOperationNameAction;
    setOperationSchema: (input: SetOperationSchemaInput) => SetOperationSchemaAction;
    setOperationDescription: (input: SetOperationDescriptionInput) => SetOperationDescriptionAction;
    setOperationTemplate: (input: SetOperationTemplateInput) => SetOperationTemplateAction;
    setOperationReducer: (input: SetOperationReducerInput) => SetOperationReducerAction;
    moveOperation: (input: MoveOperationInput) => MoveOperationAction;
    deleteOperation: (input: DeleteOperationInput) => DeleteOperationAction;
    reorderModuleOperations: (input: ReorderModuleOperationsInput) => ReorderModuleOperationsAction;
    setStateSchema: (input: SetStateSchemaInput) => SetStateSchemaAction;
    setInitialState: (input: SetInitialStateInput) => SetInitialStateAction;
    addStateExample: (input: AddStateExampleInput) => AddStateExampleAction;
    updateStateExample: (input: UpdateStateExampleInput) => UpdateStateExampleAction;
    deleteStateExample: (input: DeleteStateExampleInput) => DeleteStateExampleAction;
    reorderStateExamples: (input: ReorderStateExamplesInput) => ReorderStateExamplesAction;
    setName: (name: string) => SetNameAction;
    undo: (count?: number) => UndoAction;
    redo: (count?: number) => RedoAction;
    prune: (start?: number | undefined, end?: number | undefined) => PruneAction;
    loadState: (state: Pick<ExtendedState<unknown>, "name" | "state">, operations: number) => LoadStateAction;
};

declare const DocumentModel$1_DocumentModel: typeof DocumentModel;
type DocumentModel$1_DocumentModelAction = DocumentModelAction;
declare const DocumentModel$1_DocumentModelState: typeof DocumentModelState;
type DocumentModel$1_ExtendedDocumentModelState = ExtendedDocumentModelState;
declare const DocumentModel$1_actions: typeof actions;
declare const DocumentModel$1_createEmptyDocumentModelState: typeof createEmptyDocumentModelState;
declare const DocumentModel$1_createEmptyExtendedDocumentModelState: typeof createEmptyExtendedDocumentModelState;
declare const DocumentModel$1_reducer: typeof reducer;
declare namespace DocumentModel$1 {
  export {
    DocumentModel$1_DocumentModel as DocumentModel,
    DocumentModel$1_DocumentModelAction as DocumentModelAction,
    DocumentModel$1_DocumentModelState as DocumentModelState,
    DocumentModel$1_ExtendedDocumentModelState as ExtendedDocumentModelState,
    DocumentModel$1_actions as actions,
    DocumentModel$1_createEmptyDocumentModelState as createEmptyDocumentModelState,
    DocumentModel$1_createEmptyExtendedDocumentModelState as createEmptyExtendedDocumentModelState,
    DocumentModel$1_reducer as reducer,
    index_d as types,
  };
}

export { DocumentModel$1 as D, ExtendedDocumentModelState as E, actions as a, DocumentModel as b, createEmptyDocumentModelState as c, createEmptyExtendedDocumentModelState as d, DocumentModelAction as e, reducer as r };
