import type { AssignmentModel, AssignmentModelConfig, AssignmentStore, AssignmentStoreConfig, CrudManagerStoreDescriptor, DependencyModel, DependencyModelConfig, DependencyStore, DependencyStoreConfig, EventModel, EventModelConfig, EventStore, EventStoreConfig, FetchCredentials, HttpMethod, Model, ModelConfig, ProjectModelListeners, ResourceModel, ResourceModelConfig, ResourceStore, ResourceStoreConfig, StateTrackingManager, StateTrackingManagerConfig, Store, StoreConfig, TaskModel, TaskModelConfig, TaskStore, TaskStoreConfig } from '@bryntum/taskboard';
import {  } from '@bryntum/taskboard';

export declare type BryntumTaskBoardProjectModelProps = {
    // Configs
    /**
     * A flag, indicating whether the dates and duration calculations should adjust the result to DST time shift.
     */
    adjustDurationToDST ? : Boolean
    /**
     * The constructor of the assignment model class, to be used in the project. Will be set as the
     * [modelClass](https://bryntum.com/products/taskboard/docs/api/Core/data/Store#config-modelClass) property of the [assignmentStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-assignmentStore)
     */
    assignmentModelClass ? : typeof AssignmentModel
    /**
     * Data use to fill the [assignmentStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-assignmentStore). Should be an array of
     * [AssignmentModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/AssignmentModel) or its configuration objects.
     */
    assignments ? : AssignmentModel[]|AssignmentModelConfig[]
    /**
     * The initial data, to fill the [assignmentStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-assignmentStore) with.
     * Should be an array of [AssignmentModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/AssignmentModel) or its configuration
     * objects.
     * @deprecated 6.3.0 Use [assignments](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#config-assignments) instead
     */
    assignmentsData ? : AssignmentModel[]|AssignmentModelConfig[]
    /**
     * An [AssignmentStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/AssignmentStore) instance or a config object.
     */
    assignmentStore ? : AssignmentStore|AssignmentStoreConfig
    /**
     * The constructor to create an assignment store instance with. Should be a class, subclassing the
     * [AssignmentStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/AssignmentStore)
     */
    assignmentStoreClass ? : typeof AssignmentStore|object
    /**
     * Specify `true` to automatically call [load](https://bryntum.com/products/scheduler/docs#Scheduler/crud/AbstractCrudManagerMixin#function-load) method on the next frame after creation.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-autoLoad)
     */
    autoLoad ? : Boolean
    /**
     * `true` to automatically persist store changes after edits are made in any of the stores monitored.
     * Please note that sync request will not be invoked immediately but only after
     * [autoSyncTimeout](https://bryntum.com/products/scheduler/docs#Scheduler/crud/AbstractCrudManagerMixin#config-autoSyncTimeout) interval.
     */
    autoSync ? : Boolean
    /**
     * The timeout in milliseconds to wait before persisting changes to the server.
     * Used when [autoSync](https://bryntum.com/products/scheduler/docs#Scheduler/crud/AbstractCrudManagerMixin#config-autoSync) is set to `true`.
     */
    autoSyncTimeout ? : number
    /**
     * An object where property names with a truthy value indicate which events should bubble up the ownership
     * hierarchy when triggered.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-bubbleEvents)
     */
    bubbleEvents ? : object
    /**
     * Set to `true` to call onXXX method names (e.g. `onShow`, `onClick`), as an easy way to listen for events.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-callOnFunctions)
     */
    callOnFunctions ? : Boolean
    /**
     * By default, if an event handler throws an exception, the error propagates up the stack and the
     * application state is undefined. Code which follows the event handler will *not* be executed.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-catchEventHandlerExceptions)
     */
    catchEventHandlerExceptions ? : Boolean
    /**
     * Child nodes. To allow loading children on demand, specify `children : true` in your data. Omit the field for leaf
     * tasks.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-children)
     */
    children ? : Boolean|object[]|Model[]|ModelConfig[]
    /**
     * Sets the list of stores controlled by the CRUD manager.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-crudStores)
     */
    crudStores ? : Store[]|string[]|CrudManagerStoreDescriptor[]|StoreConfig[]
    /**
     * Data use to fill the [dependencyStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-dependencyStore). Should be an array of
     * [DependencyModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/DependencyModel) or its configuration objects.
     */
    dependencies ? : DependencyModel[]|DependencyModelConfig[]
    /**
     * The initial data, to fill the [dependencyStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-dependencyStore) with.
     * Should be an array of [DependencyModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/DependencyModel) or its configuration
     * objects.
     * @deprecated 6.3.0 Use [dependencies](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#config-dependencies) instead
     */
    dependenciesData ? : DependencyModel[]|DependencyModelConfig[]
    /**
     * The constructor of the dependency model class, to be used in the project. Will be set as the
     * [modelClass](https://bryntum.com/products/taskboard/docs/api/Core/data/Store#config-modelClass) property of the [dependencyStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-dependencyStore)
     */
    dependencyModelClass ? : typeof DependencyModel
    /**
     * A [DependencyStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/DependencyStore) instance or a config object.
     */
    dependencyStore ? : DependencyStore|DependencyStoreConfig
    /**
     * The constructor to create a dependency store instance with. Should be a class, subclassing the
     * [DependencyStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/DependencyStore)
     */
    dependencyStoreClass ? : typeof DependencyStore|object
    /**
     * Configuration of the JSON encoder used by the *Crud Manager*.
     * @property {object} encoder.requestData Static data to send with the data request. ```javascript new CrudManager({     // add static "foo" property to all requests data     encoder : {         requestData : {             foo : 'Bar'         }     },     ... }); ``` The above snippet will result adding "foo" property to all requests data: ```json     {         "requestId"   : 756,         "type"        : "load",          "foo"         : "Bar",          "stores"      : [             ... ```
     */
    encoder ? : { requestData: object }
    /**
     * Data use to fill the [eventStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-eventStore). Should be an array of
     * [EventModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/EventModel) or its configuration objects.
     */
    events ? : EventModel[]|EventModelConfig[]
    /**
     * The initial data, to fill the [eventStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-eventStore) with.
     * Should be an array of [EventModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/EventModel) or its configuration objects.
     * @deprecated 6.3.0 Use [events](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#config-events) instead
     */
    eventsData ? : EventModel[]|EventModelConfig[]
    /**
     * An [EventStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/EventStore) instance or a config object.
     */
    eventStore ? : EventStore|EventStoreConfig
    /**
     * Start expanded or not (only valid for tree data)
     */
    expanded ? : Boolean
    /**
     * Specify as `true` to force sync requests to be sent when calling `sync()`, even if there are no local
     * changes. Useful in a polling scenario, to keep client up to date with the backend.
     */
    forceSync ? : Boolean
    /**
     * Unique identifier for the record. Might be mapped to another dataSource using idField, but always exposed as
     * record.id. Will get a generated value if none is specified in records data.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-id)
     */
    id ? : string|number
    /**
     * Set to `true` to make STM ignore changes coming from the backend. This will allow user to only undo redo
     * local changes.
     */
    ignoreRemoteChangesInSTM ? : Boolean
    /**
     * Set to `false` to only include the id of a removed parent node in the request to the backend (also
     * affects programmatic calls to get [changes](https://bryntum.com/products/scheduler/docs#Scheduler/crud/AbstractCrudManagerMixin#property-changes) etc.), and not the ids of its children.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-includeChildrenInRemoveRequest)
     */
    includeChildrenInRemoveRequest ? : Boolean
    /**
     * Whether to include legacy data properties in the JSON / inlineData output. The legacy data properties are
     * the `xxData` (`eventsData`, `resourcesData` etc.) properties that are deprecated and will be removed in
     * the future.
     * @deprecated 6.3.0 This config will be removed when the eventsData, resourcesData etc. properties are removed in a future release.
     */
    includeLegacyDataProperties ? : Boolean
    /**
     * This field is added to the class at runtime when the Store is configured with
     * [lazyLoad](https://bryntum.com/products/taskboard/docs/api/Core/data/Store#config-lazyLoad). If set on a parent record at load time, that parent will not cause any
     * more child load requests. If omitted, it will be automatically set to `true` when a load request receives fewer
     * child records than requested.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-isFullyLoaded)
     */
    isFullyLoaded ? : Boolean
    /**
     * Project data as a JSON string, used to populate its stores.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-json)
     */
    json ? : string
    /**
     * The listener set for this object.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-listeners)
     */
    listeners ? : ProjectModelListeners
    /**
     * Convenience shortcut to set only the url to load from, when you do not need to supply any other config
     * options in the `load` section of the `transport` config.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-loadUrl)
     */
    loadUrl ? : string
    /**
     * This is a read-only field provided in server synchronization packets to specify
     * which position the node takes in the parent's ordered children array.
     * This index is set on load and gets updated on reordering nodes in tree. Sorting and filtering
     * have no effect on it.
     */
    orderedParentIndex ? : number
    /**
     * This is a read-only field provided in server synchronization packets to specify
     * which record id is the parent of the record.
     */
    parentId ? : string|number|null
    /**
     * This is a read-only field provided in server synchronization packets to specify
     * which position the node takes in the parent's children array.
     * This index is set on load and gets updated automatically after row reordering, sorting, etc.
     * To save the order, need to persist the field on the server and when data is fetched to be loaded,
     * need to sort by this field.
     */
    parentIndex ? : number
    /**
     * Field name to be used to transfer a phantom record identifier.
     */
    phantomIdField ? : string
    /**
     * Field name to be used to transfer a phantom parent record identifier.
     */
    phantomParentIdField ? : string
    /**
     * Flag the record as read-only on the UI level, preventing the end user from manipulating it using editing
     * features such as cell editing and event dragging.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-readOnly)
     */
    readOnly ? : Boolean
    /**
     * This field is added to the class at runtime when the Store is configured with
     * [lazyLoad](https://bryntum.com/products/taskboard/docs/api/Core/data/Store#config-lazyLoad). The
     * number specified should reflect the <strong>total</strong> amount of children of a parent node, including nested descendants.
     * @deprecated This field has been deprecated. Please read the [guide](https://bryntum.com/products/grid/docs/guide/Grid/data/lazyloading) to find out if your app needs to use the new [isFullyLoaded](https://bryntum.com/products/taskboard/docs/api/Core/data/mixin/TreeNode#field-isFullyLoaded) field.
     */
    remoteChildCount ? : number
    /**
     * `True` to reset identifiers (defined by `idField` config) of phantom records before submitting them
     * to the server.
     */
    resetIdsBeforeSync ? : Boolean
    /**
     * The constructor of the resource model class, to be used in the project. Will be set as the
     * [modelClass](https://bryntum.com/products/taskboard/docs/api/Core/data/Store#config-modelClass) property of the [resourceStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-resourceStore)
     */
    resourceModelClass ? : typeof ResourceModel
    /**
     * Data use to fill the [resourceStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-resourceStore). Should be an array of
     * [ResourceModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/ResourceModel) or its configuration objects.
     */
    resources ? : ResourceModel[]|ResourceModelConfig[]
    /**
     * The initial data, to fill the [resourceStore](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#property-resourceStore) with.
     * Should be an array of [ResourceModels](https://bryntum.com/products/scheduler/docs#Scheduler/model/ResourceModel) or its configuration objects.
     * @deprecated 6.3.0 Use [resources](https://bryntum.com/products/scheduler/docs#Scheduler/model/ProjectModel#config-resources) instead
     */
    resourcesData ? : ResourceModel[]|ResourceModelConfig[]
    /**
     * A [ResourceStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/ResourceStore) instance or a config object.
     */
    resourceStore ? : ResourceStore|ResourceStoreConfig
    /**
     * The constructor to create a resource store instance with. Should be a class, subclassing the
     * [ResourceStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/ResourceStore)
     */
    resourceStoreClass ? : typeof ResourceStore|object
    /**
     * Experimental hook that lets the app determine if a bound dataset needs syncing with the store or not, and
     * if it does - which records that should be processed. Only called for stores that are configured with
     * `syncDataOnLoad: true` (which is the default in the React, Angular and Vue wrappers).
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-shouldSyncDataOnLoad)
     * @param {object} options Options passed by the store to this hook
     * @param {Core.data.Store} options.store Store about to be synced
     * @param {Core.data.Model} options.records Records currently in the store
     * @param {object[]} options.data Incoming data
     * @returns {Set<any>,boolean} Return `false` to prevent the store from syncing, or a set of record ids that need further processing (for records that has some kind of change, eg. an update, removal or addition)
     */
    shouldSyncDataOnLoad ? : (options: { store: Store, records: Model, data: object[] }) => Set<any>|Boolean
    /**
     * Silences propagations caused by the project loading.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-silenceInitialCommit)
     */
    silenceInitialCommit ? : Boolean
    /**
     * When `true` treats parsed responses without `success` property as successful.
     * In this mode a parsed response is treated as invalid if it has explicitly set `success : false`.
     */
    skipSuccessProperty ? : Boolean
    /**
     * Configuration options to provide to the STM manager
     */
    stm ? : StateTrackingManagerConfig|StateTrackingManager
    /**
     * Name of a store property to retrieve store identifiers from. Make sure you have an instance of a
     * store to use it by id. Store identifier is used as a container name holding corresponding store data
     * while transferring them to/from the server. By default, `id` property is used. And in case a
     * container identifier has to differ this config can be used:
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-storeIdProperty)
     */
    storeIdProperty ? : string
    /**
     * When `true` the Crud Manager does not require all updated and removed records to be mentioned in the
     * *sync* response. In this case response should include only server side changes.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-supportShortSyncResponse)
     */
    supportShortSyncResponse ? : Boolean
    /**
     * An array of store identifiers sets an alternative sync responses apply order.
     * By default, the order in which sync responses are applied to the stores is the same as they
     * registered in. But in case of some tricky dependencies between stores this order can be changed:
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-syncApplySequence)
     */
    syncApplySequence ? : string[]|CrudManagerStoreDescriptor[]
    /**
     * Convenience shortcut to set only the url to sync to, when you do not need to supply any other config
     * options in the `sync` section of the `transport` config.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-syncUrl)
     */
    syncUrl ? : string
    /**
     * The constructor of the task model class, to be used in the project.
     * Will be set as the [modelClass](https://bryntum.com/products/taskboard/docs/api/Core/data/Store#config-modelClass)
     * property of the [taskStore](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#property-taskStore).
     */
    taskModelClass ? : typeof TaskModel
    /**
     * The initial data, to fill the [taskStore](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#property-taskStore) with. Should be an array of
     * [TaskModel](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/TaskModel) or its configuration objects.
     */
    tasks ? : TaskModel[]|TaskModelConfig[]
    /**
     * The initial data, to fill the [taskStore](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#property-taskStore) with.
     * Should be an array of [TaskModel](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/TaskModel) instances or its configuration objects.
     * @deprecated 6.3.0 Use [tasks](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-tasks) instead
     */
    tasksData ? : TaskModel[]|TaskModelConfig[]
    /**
     * An [TaskStore](https://bryntum.com/products/taskboard/docs/api/TaskBoard/store/TaskStore) instance or a config object.
     */
    taskStore ? : TaskStoreConfig|TaskStore
    /**
     * The constructor to create a task store instance with.
     * Should be a class, subclassing the [TaskStore](https://bryntum.com/products/taskboard/docs/api/TaskBoard/store/TaskStore).
     */
    taskStoreClass ? : typeof TaskStore
    /**
     * Set to a IANA time zone (i.e. `Europe/Stockholm`) or a UTC offset in minutes (i.e. `-120`). This will
     * convert all events, tasks and time ranges to the specified time zone or offset. It will also affect the
     * displayed timeline's headers as well at the start and end date of it.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-timeZone)
     */
    timeZone ? : string|number
    /**
     * Specifies the output format of [toJSON](https://bryntum.com/products/scheduler/docs#Scheduler/model/mixin/ProjectModelCommon#function-toJSON).
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-toJSONResultFormat)
     */
    toJSONResultFormat ? : 'inlineData'|'model'
    /**
     * When `true` forces the CRUD manager to process responses depending on their `type` attribute.
     * So `load` request may be responded with `sync` response for example.
     * Can be used for smart server logic allowing the server to decide when it's better to respond with a
     * complete data set (`load` response) or it's enough to return just a delta (`sync` response).
     */
    trackResponseType ? : Boolean
    /**
     * Configuration of the AJAX requests used by *Crud Manager* to communicate with a server-side.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-transport)
     * @property {object} [transport.load] Load requests configuration:
     * @property {string} [transport.load.url] URL to request for data loading.
     * @property {HttpMethod} [transport.load.method] HTTP method to be used for load requests.
     * @property {FetchCredentials} [transport.load.credentials] The request credentials option to use for load requests. Corresponds to the standard <a href="https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials">Fetch API `credentials`</a> option.
     * @property {string} [transport.load.paramName] Name of the parameter that will contain a serialized `load` request. The value is mandatory for requests using `GET` method (default for `load`) so if the value is not provided `data` string is used as default. This value is optional for HTTP methods like `POST` and `PUT`, the request body will be used for data transferring in these cases.
     * @property {object} [transport.load.params] An object containing extra HTTP parameters to pass to the server when sending a `load` request. ```javascript transport : {     load : {         url       : 'http://mycool-server.com/load.php',         // HTTP request parameter used to pass serialized "load"-requests         paramName : 'data',         // pass extra HTTP request parameter         // so resulting URL will look like: http://mycool-server.com/load.php?userId=123456&data=...         params    : {             userId : '123456'         }     },     ... } ```
     * @property {Record<string, string>} [transport.load.headers] An object containing headers to pass to each server request. ```javascript transport : {     load : {         url       : 'http://mycool-server.com/load.php',         // HTTP request parameter used to pass serialized "load"-requests         paramName : 'data',         // specify Content-Type for "load" requests         headers   : {             'Content-Type' : 'application/json'         }     },     ... } ```
     * @property {object} [transport.sync] Sync requests (`sync` in further text) configuration:
     * @property {string} [transport.sync.url] URL to request for `sync`.
     * @property {HttpMethod} [transport.sync.method] HTTP request method to be used for `sync`.
     * @property {FetchCredentials} [transport.sync.credentials] The request credentials option to use for sync requests. Corresponds to the standard <a href="https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials">Fetch API `credentials`</a> option.
     * @property {string} [transport.sync.paramName] Name of the parameter in which `sync` data will be transferred. This value is optional for requests using methods like `POST` and `PUT`, the request body will be used for data transferring in this case (default for `sync`). And the value is mandatory for requests using `GET` method (if the value is not provided `data` string will be used as fallback).
     * @property {object} [transport.sync.params] HTTP parameters to pass with an HTTP request handling `sync`. ```javascript transport : {     sync : {         url    : 'http://mycool-server.com/sync.php',         // extra HTTP request parameter         params : {             userId : '123456'         }     },     ... } ```
     * @property {Record<string, string>} [transport.sync.headers] HTTP headers to pass with an HTTP request handling `sync`. ```javascript transport : {     sync : {         url     : 'http://mycool-server.com/sync.php',         // specify Content-Type for "sync" requests         headers : {             'Content-Type' : 'application/json'         }     },     ... } ```
     */
    transport ? : { load?: { url?: string, method?: HttpMethod, credentials?: FetchCredentials, paramName?: string, params?: object, headers?: Record<string, string> }, sync?: { url?: string, method?: HttpMethod, credentials?: FetchCredentials, paramName?: string, params?: object, headers?: Record<string, string> } }
    /**
     * By default, the stores of a project use the raw data objects passed to them as the data source for their
     * records if data is loaded remotely (using an `AjaxStore` or a `CrudManager`). For data supplied inline,
     * the data objects are instead by default cloned to avoid the original data object being modified by the
     * store.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-useRawData)
     */
    useRawData ? : Boolean
    /**
     * This config validates the response structure for requests made by the Crud Manager.
     * When `true`, the Crud Manager checks every parsed response structure for errors
     * and if the response format is invalid, a warning is logged to the browser console.
     * [More...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#config-validateResponse)
     */
    validateResponse ? : Boolean
    /**
     * `true` to write all fields from the record to the server.
     * If set to `false` it will only send the fields that were modified.
     * Note that any fields that have [persist](https://bryntum.com/products/taskboard/docs/api/Core/data/field/DataField#config-persist) set to `false` will
     * still be ignored and fields having [alwaysWrite](https://bryntum.com/products/taskboard/docs/api/Core/data/field/DataField#config-alwaysWrite) set to `true`
     * will always be included.
     */
    writeAllFields ? : Boolean

}
