import { HttpClient, NonNullablePaths, MaybeContext, BuildRESTFunction } from '@wix/sdk-types';
import { DataCollection, GetDataCollectionOptions, ListDataCollectionsOptions, ListDataCollectionsResponse, PatchDataCollection, PatchDataCollectionResponse, CreateDataCollectionFieldOptions, CreateDataCollectionFieldResponse, UpdateDataCollectionFieldOptions, UpdateDataCollectionFieldResponse, DeleteDataCollectionFieldOptions, DeleteDataCollectionFieldResponse, AddDataCollectionPluginOptions, AddDataCollectionPluginResponse, DeleteDataCollectionPluginOptions, DeleteDataCollectionPluginResponse, Field, PatchDataCollectionFieldResponse } from './index.typings.js';
export { AccessLevel, AccessLevelWithLiterals, AccountInfo, ActionEvent, AddDataCollectionPluginRequest, Address, AllowedDataPermissions, AppOptions, ApplicationError, ArrayDocument, ArraySizeRange, ArrayString, Audio, BulkGetDataCollectionsPageBySnapshotsRequest, BulkGetDataCollectionsPageBySnapshotsRequestTenantModeOptionsOneOf, BulkGetDataCollectionsPageBySnapshotsResponse, BulkGetDataCollectionsRequest, BulkGetDataCollectionsResponse, Calculator, CalculatorPatternOneOf, CatalogOptions, CategoryFieldOptions, CmsOptions, CollectionCapabilities, CollectionDefinition, CollectionOperation, CollectionOperationWithLiterals, CollectionType, CollectionTypeWithLiterals, CreateAppCollectionsSnapshotRequest, CreateAppCollectionsSnapshotResponse, CreateDataCollectionFieldRequest, CreateDataCollectionRequest, CreateDataCollectionResponse, CreateDataCollectionsSnapshotRequest, CreateDataCollectionsSnapshotResponse, CreateMigratedCollectionsSnapshotRequest, CreateMigratedCollectionsSnapshotResponse, DataCollectionChangedEvent, DataCollectionClonedEvent, DataCollectionEvictedEvent, DataOperation, DataOperationWithLiterals, DataPermissions, Datetime, DatetimeDefaultValueOneOf, DatetimeMaxDateOneOf, DatetimeMinDateOneOf, DeleteDataCollectionFieldRequest, DeleteDataCollectionPluginRequest, DeleteDataCollectionRequest, DeleteDataCollectionResponse, DeleteDataCollectionsSnapshotRequest, DeleteDataCollectionsSnapshotResponse, Destination, Direction, DirectionWithLiterals, Document, DomainEvent, DomainEventBodyOneOf, DraftItemsPluginOptions, Email, EntityCreatedEvent, EntityDeletedEvent, EntityUpdatedEvent, EnumValues, FailedCollection, Failure, FieldCapabilities, FieldCondition, FieldPlugin, FieldPluginOptionsOneOf, FieldPluginType, FieldPluginTypeWithLiterals, FieldRangeValidationsOneOf, FieldUpdate, FieldsPattern, Format, FormatWithLiterals, GetDataCollectionRequest, GetDataCollectionResponse, IdentificationData, IdentificationDataIdOneOf, Image, Index, IndexField, IndexLimits, IndexQuotaLimits, IndexSource, IndexSourceWithLiterals, IndexStatus, IndexStatusWithLiterals, LegacyColor, ListDataCollectionsRequest, MediaGallery, MessageEnvelope, MultiReference, MultilingualOptions, NumberRange, ObjectField, Order, OrderWithLiterals, PageLink, PageLinkPluginOptions, PageLinkType, PageLinkTypeWithLiterals, Paging, PagingMetadataV2, PagingMode, PagingModeWithLiterals, PatchDataCollectionFieldRequest, PatchDataCollectionRequest, Permission, PermissionWithLiterals, Permissions, PermissionsUpdate, Plugin, PluginCmsOptions, PluginOptionsOneOf, PluginType, PluginTypeWithLiterals, PluginUpdate, PublishPluginOptions, QueryOperator, QueryOperatorWithLiterals, Reference, RestorationCollection, RestoreDataCollectionRequest, RestoreDataCollectionResponse, RestoreDataCollectionsFromSnapshotRequest, RestoreDataCollectionsFromSnapshotResponse, RestoreInfo, RichContent, RichText, Role, RoleWithLiterals, Segment, SegmentWithLiterals, SingleItemPluginOptions, SiteSort, Slug, SnapshotCollection, Sort, SortOrder, SortOrderWithLiterals, Sorting, Status, StatusWithLiterals, StrictModeUpdate, StringLengthRange, TenantMode, TenantModeWithLiterals, Text, TextValidation, TextValidationOneOf, Time, Type, TypeMetadata, TypeMetadataMetadataOneOf, TypeWithLiterals, UpdateDataCollectionFieldRequest, UpdateDataCollectionRequest, UpdateDataCollectionResponse, UpdateDataPermissionsRequest, UpdateDataPermissionsResponse, Url, UrlizedOnlyPattern, UrlizedPluginOptions, Video, WebhookIdentityType, WebhookIdentityTypeWithLiterals, _Array, _Boolean, _Date, _DateDefaultValueOneOf, _DateMaxDateOneOf, _DateMinDateOneOf, _Number, _Object } from './index.typings.js';

declare function createDataCollection$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): CreateDataCollectionSignature;
interface CreateDataCollectionSignature {
    /**
     * Creates a new data collection.
     *
     * The request body must include an ID, details for at least 1 field, and a permissions object. If any of these are missing, the collection isn't created.
     * @param - Collection details.
     * @param - Options for creating a data collection.
     * @returns Details of collection created.
     */
    (collection: NonNullablePaths<DataCollection, `_id` | `fields.${number}.key` | `fields.${number}.type` | `permissions.insert` | `permissions.read` | `permissions.remove` | `permissions.update`, 4>): Promise<NonNullablePaths<DataCollection, `_id` | `collectionType` | `defaultDisplayOrder.fieldKey` | `defaultDisplayOrder.direction` | `capabilities.dataOperations` | `capabilities.collectionOperations` | `capabilities.indexLimits.regular` | `capabilities.indexLimits.unique` | `capabilities.indexLimits.total` | `fields` | `fields.${number}.key` | `fields.${number}.type` | `fields.${number}.typeMetadata.reference.referencedCollectionId` | `fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `fields.${number}.typeMetadata.array.elementType` | `fields.${number}.systemField` | `fields.${number}.capabilities.sortable` | `fields.${number}.encrypted` | `fields.${number}.condition.permission` | `permissions.insert` | `permissions.update` | `permissions.remove` | `permissions.read` | `plugins` | `plugins.${number}.publishOptions.defaultStatus` | `plugins.${number}.singleItemOptions.singleItemId` | `plugins.${number}.urlizedOptions.format` | `plugins.${number}.editablePageLinkOptions.isPersisted` | `plugins.${number}.editablePageLinkOptions.isMutable` | `plugins.${number}.type` | `pagingModes`, 6>>;
}
declare function getDataCollection$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): GetDataCollectionSignature;
interface GetDataCollectionSignature {
    /**
     * Retrieves a data collection by ID.
     * @param - ID of the collection to retrieve.
     * @param - Options for retrieving a data collection.
     * @returns Details of the collection requested.
     */
    (dataCollectionId: string, options?: GetDataCollectionOptions): Promise<NonNullablePaths<DataCollection, `_id` | `collectionType` | `defaultDisplayOrder.fieldKey` | `defaultDisplayOrder.direction` | `capabilities.dataOperations` | `capabilities.collectionOperations` | `capabilities.indexLimits.regular` | `capabilities.indexLimits.unique` | `capabilities.indexLimits.total` | `fields` | `fields.${number}.key` | `fields.${number}.type` | `fields.${number}.typeMetadata.reference.referencedCollectionId` | `fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `fields.${number}.typeMetadata.array.elementType` | `fields.${number}.systemField` | `fields.${number}.capabilities.sortable` | `fields.${number}.encrypted` | `fields.${number}.condition.permission` | `permissions.insert` | `permissions.update` | `permissions.remove` | `permissions.read` | `plugins` | `plugins.${number}.publishOptions.defaultStatus` | `plugins.${number}.singleItemOptions.singleItemId` | `plugins.${number}.urlizedOptions.format` | `plugins.${number}.editablePageLinkOptions.isPersisted` | `plugins.${number}.editablePageLinkOptions.isMutable` | `plugins.${number}.type` | `pagingModes`, 6>>;
}
declare function listDataCollections$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): ListDataCollectionsSignature;
interface ListDataCollectionsSignature {
    /**
     * Retrieves a list of all data collections associated with the site or project.
     *
     * By default, the list is ordered by ID in ascending order.
     * @param - Options for retrieving a list of data collections.
     */
    (options?: ListDataCollectionsOptions): Promise<NonNullablePaths<ListDataCollectionsResponse, `collections` | `collections.${number}._id` | `collections.${number}.collectionType` | `collections.${number}.defaultDisplayOrder.fieldKey` | `collections.${number}.defaultDisplayOrder.direction` | `collections.${number}.capabilities.indexLimits.regular` | `collections.${number}.capabilities.indexLimits.unique` | `collections.${number}.capabilities.indexLimits.total` | `collections.${number}.permissions.insert` | `collections.${number}.permissions.update` | `collections.${number}.permissions.remove` | `collections.${number}.permissions.read`, 6>>;
}
declare function updateDataCollection$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): UpdateDataCollectionSignature;
interface UpdateDataCollectionSignature {
    /**
     * Updates a data collection.
     *
     * A collection ID, revision number, permissions, and at least 1 field must be provided in the `collection` body parameter.
     * If a collection with that ID exists, and if its current `revision` number matches the one provided, it's updated.
     * Otherwise, the request fails.
     *
     * <blockquote class="important">
     * <strong>Important:</strong>
     *
     * After a collection is updated, it only contains the properties included in the Update Data Collection request.
     * If the existing collection has properties with values and those properties aren't included in the updated collection details,
     * their values are lost.<br/><br/>
     *
     * To update only specific properties without affecting others, use [Patch Data Collection](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/patch-data-collection).
     * </blockquote>
     *
     * When a collection is updated, its `updatedDate` changes to the current date and its `revision` increments by 1.
     *
     * To update only properties in a collection's `fields` array, use [Update Data Collection Field](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/update-data-collection-field).
     * To only add or remove `plugins`, use [Add Data Collection Plugin](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/add-data-collection-plugin) or [Delete Data Collection Plugin](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/delete-data-collection-plugin).
     * @param - Updated collection details. The existing collection is replaced with this version.
     * @param - Options for updating a data collection.
     * @returns Updated collection details.
     */
    (collection: NonNullablePaths<DataCollection, `_id` | `fields.${number}.key` | `fields.${number}.type` | `permissions.insert` | `permissions.read` | `permissions.remove` | `permissions.update` | `revision`, 4>): Promise<NonNullablePaths<DataCollection, `_id` | `collectionType` | `defaultDisplayOrder.fieldKey` | `defaultDisplayOrder.direction` | `capabilities.dataOperations` | `capabilities.collectionOperations` | `capabilities.indexLimits.regular` | `capabilities.indexLimits.unique` | `capabilities.indexLimits.total` | `fields` | `fields.${number}.key` | `fields.${number}.type` | `fields.${number}.typeMetadata.reference.referencedCollectionId` | `fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `fields.${number}.typeMetadata.array.elementType` | `fields.${number}.systemField` | `fields.${number}.capabilities.sortable` | `fields.${number}.encrypted` | `fields.${number}.condition.permission` | `permissions.insert` | `permissions.update` | `permissions.remove` | `permissions.read` | `plugins` | `plugins.${number}.publishOptions.defaultStatus` | `plugins.${number}.singleItemOptions.singleItemId` | `plugins.${number}.urlizedOptions.format` | `plugins.${number}.editablePageLinkOptions.isPersisted` | `plugins.${number}.editablePageLinkOptions.isMutable` | `plugins.${number}.type` | `pagingModes`, 6>>;
}
declare function deleteDataCollection$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): DeleteDataCollectionSignature;
interface DeleteDataCollectionSignature {
    /**
     * Deletes a data collection.
     *
     * Before deleting a collection:
     * - Make sure the collection isn't connected to any site pages or elements.
     * - You can create a manual backup of a collections with the Backups API, in case you need to restore them later.
     * - You can also export a collection to a CSV file with the Data Movement Jobs API, if you want to save the data outside of Wix.
     *
     * > **Note:**
     * > Once a collection is deleted, it can only be restored for a limited amount of time.
     * @param - ID of the collection to delete.
     */
    (dataCollectionId: string): Promise<void>;
}
declare function patchDataCollection$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): PatchDataCollectionSignature;
interface PatchDataCollectionSignature {
    /**
     * Updates specified properties of a data collection.
     *
     * Only updates the properties specified in the request, all other properties remain unchanged.
     * The following properties can be updated with this method: `displayName`, `displayField`, and `permissions`.
     * Attempting to update unsupported properties causes this operation to fail.
     *
     * To update properties in a collection's `fields` array, use [Patch Data Collection Field](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/patch-data-collection-field).
     * To add or remove `plugins`, use [Add Data Collection Plugin](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/add-data-collection-plugin) or [Delete Data Collection Plugin](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/delete-data-collection-plugin).
     * @param - [Collection ID](https://dev.wix.com/docs/develop-websites-sdk/code-your-site/work-with-data/introduction/about-collections#collection-ids). For example, `my-first-collection`.
     * For [app collections](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/wix-app-collections/introduction), use `AppName/CollectionName`.
     */
    (_id: string, dataCollection: PatchDataCollection): Promise<NonNullablePaths<PatchDataCollectionResponse, `dataCollection._id` | `dataCollection.collectionType` | `dataCollection.defaultDisplayOrder.fieldKey` | `dataCollection.defaultDisplayOrder.direction` | `dataCollection.capabilities.dataOperations` | `dataCollection.capabilities.collectionOperations` | `dataCollection.capabilities.indexLimits.regular` | `dataCollection.capabilities.indexLimits.unique` | `dataCollection.capabilities.indexLimits.total` | `dataCollection.fields` | `dataCollection.fields.${number}.key` | `dataCollection.fields.${number}.type` | `dataCollection.fields.${number}.typeMetadata.reference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `dataCollection.fields.${number}.typeMetadata.array.elementType` | `dataCollection.fields.${number}.systemField` | `dataCollection.fields.${number}.capabilities.sortable` | `dataCollection.fields.${number}.encrypted` | `dataCollection.fields.${number}.condition.permission` | `dataCollection.permissions.insert` | `dataCollection.permissions.update` | `dataCollection.permissions.remove` | `dataCollection.permissions.read` | `dataCollection.plugins` | `dataCollection.plugins.${number}.publishOptions.defaultStatus` | `dataCollection.plugins.${number}.singleItemOptions.singleItemId` | `dataCollection.plugins.${number}.urlizedOptions.format` | `dataCollection.plugins.${number}.editablePageLinkOptions.isPersisted` | `dataCollection.plugins.${number}.editablePageLinkOptions.isMutable` | `dataCollection.plugins.${number}.type` | `dataCollection.pagingModes`, 7>>;
}
declare function createDataCollectionField$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): CreateDataCollectionFieldSignature;
interface CreateDataCollectionFieldSignature {
    /**
     * Adds a new field to the structure of a data collection.
     * @param - ID of the data collection to update.
     */
    (dataCollectionId: string, options: NonNullablePaths<CreateDataCollectionFieldOptions, `field` | `field.key` | `field.type`, 3>): Promise<NonNullablePaths<CreateDataCollectionFieldResponse, `dataCollection._id` | `dataCollection.collectionType` | `dataCollection.defaultDisplayOrder.fieldKey` | `dataCollection.defaultDisplayOrder.direction` | `dataCollection.capabilities.dataOperations` | `dataCollection.capabilities.collectionOperations` | `dataCollection.capabilities.indexLimits.regular` | `dataCollection.capabilities.indexLimits.unique` | `dataCollection.capabilities.indexLimits.total` | `dataCollection.fields` | `dataCollection.fields.${number}.key` | `dataCollection.fields.${number}.type` | `dataCollection.fields.${number}.typeMetadata.reference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `dataCollection.fields.${number}.typeMetadata.array.elementType` | `dataCollection.fields.${number}.systemField` | `dataCollection.fields.${number}.capabilities.sortable` | `dataCollection.fields.${number}.encrypted` | `dataCollection.fields.${number}.condition.permission` | `dataCollection.permissions.insert` | `dataCollection.permissions.update` | `dataCollection.permissions.remove` | `dataCollection.permissions.read` | `dataCollection.plugins` | `dataCollection.plugins.${number}.publishOptions.defaultStatus` | `dataCollection.plugins.${number}.singleItemOptions.singleItemId` | `dataCollection.plugins.${number}.urlizedOptions.format` | `dataCollection.plugins.${number}.editablePageLinkOptions.isPersisted` | `dataCollection.plugins.${number}.editablePageLinkOptions.isMutable` | `dataCollection.plugins.${number}.type` | `dataCollection.pagingModes`, 7>>;
}
declare function updateDataCollectionField$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): UpdateDataCollectionFieldSignature;
interface UpdateDataCollectionFieldSignature {
    /**
     * Updates properties in a [data collection's](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/create-data-collection) `fields` array.
     *
     * <blockquote class="important">
     * <strong>Important:</strong>
     *
     * After `fields` is updated, it only contains the properties included in the Update Data Collection Field request.
     * If the existing `fields` array has properties with values and those properties aren't included in the updated details, their values are lost.<br/><br/>
     *
     * To update only specific properties in the array without affecting others, use [Patch Data Collection Field](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/patch-data-collection-field).
     * </blockquote>
     * @param - ID of the data collection to update.
     */
    (dataCollectionId: string, options: NonNullablePaths<UpdateDataCollectionFieldOptions, `field` | `field.key` | `field.type`, 3>): Promise<NonNullablePaths<UpdateDataCollectionFieldResponse, `dataCollection._id` | `dataCollection.collectionType` | `dataCollection.defaultDisplayOrder.fieldKey` | `dataCollection.defaultDisplayOrder.direction` | `dataCollection.capabilities.dataOperations` | `dataCollection.capabilities.collectionOperations` | `dataCollection.capabilities.indexLimits.regular` | `dataCollection.capabilities.indexLimits.unique` | `dataCollection.capabilities.indexLimits.total` | `dataCollection.fields` | `dataCollection.fields.${number}.key` | `dataCollection.fields.${number}.type` | `dataCollection.fields.${number}.typeMetadata.reference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `dataCollection.fields.${number}.typeMetadata.array.elementType` | `dataCollection.fields.${number}.systemField` | `dataCollection.fields.${number}.capabilities.sortable` | `dataCollection.fields.${number}.encrypted` | `dataCollection.fields.${number}.condition.permission` | `dataCollection.permissions.insert` | `dataCollection.permissions.update` | `dataCollection.permissions.remove` | `dataCollection.permissions.read` | `dataCollection.plugins` | `dataCollection.plugins.${number}.publishOptions.defaultStatus` | `dataCollection.plugins.${number}.singleItemOptions.singleItemId` | `dataCollection.plugins.${number}.urlizedOptions.format` | `dataCollection.plugins.${number}.editablePageLinkOptions.isPersisted` | `dataCollection.plugins.${number}.editablePageLinkOptions.isMutable` | `dataCollection.plugins.${number}.type` | `dataCollection.pagingModes`, 7>>;
}
declare function deleteDataCollectionField$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): DeleteDataCollectionFieldSignature;
interface DeleteDataCollectionFieldSignature {
    /**
     * Deletes a field from the structure of a data collection.
     *
     * When a field is deleted, all values associated with that field are also deleted
     * from all items in the collection.
     * @param - ID of the data collection to update.
     */
    (dataCollectionId: string, options: NonNullablePaths<DeleteDataCollectionFieldOptions, `fieldKey`, 2>): Promise<NonNullablePaths<DeleteDataCollectionFieldResponse, `dataCollection._id` | `dataCollection.collectionType` | `dataCollection.defaultDisplayOrder.fieldKey` | `dataCollection.defaultDisplayOrder.direction` | `dataCollection.capabilities.dataOperations` | `dataCollection.capabilities.collectionOperations` | `dataCollection.capabilities.indexLimits.regular` | `dataCollection.capabilities.indexLimits.unique` | `dataCollection.capabilities.indexLimits.total` | `dataCollection.fields` | `dataCollection.fields.${number}.key` | `dataCollection.fields.${number}.type` | `dataCollection.fields.${number}.typeMetadata.reference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `dataCollection.fields.${number}.typeMetadata.array.elementType` | `dataCollection.fields.${number}.systemField` | `dataCollection.fields.${number}.capabilities.sortable` | `dataCollection.fields.${number}.encrypted` | `dataCollection.fields.${number}.condition.permission` | `dataCollection.permissions.insert` | `dataCollection.permissions.update` | `dataCollection.permissions.remove` | `dataCollection.permissions.read` | `dataCollection.plugins` | `dataCollection.plugins.${number}.publishOptions.defaultStatus` | `dataCollection.plugins.${number}.singleItemOptions.singleItemId` | `dataCollection.plugins.${number}.urlizedOptions.format` | `dataCollection.plugins.${number}.editablePageLinkOptions.isPersisted` | `dataCollection.plugins.${number}.editablePageLinkOptions.isMutable` | `dataCollection.plugins.${number}.type` | `dataCollection.pagingModes`, 7>>;
}
declare function addDataCollectionPlugin$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): AddDataCollectionPluginSignature;
interface AddDataCollectionPluginSignature {
    /**
     * Adds a plugin to a data collection.
     *
     * If a plugin of the same type already exists in the collection, this operation fails.
     * @param - ID of the data collection to update.
     */
    (dataCollectionId: string, options: NonNullablePaths<AddDataCollectionPluginOptions, `plugin` | `plugin.type`, 3>): Promise<NonNullablePaths<AddDataCollectionPluginResponse, `dataCollection._id` | `dataCollection.collectionType` | `dataCollection.defaultDisplayOrder.fieldKey` | `dataCollection.defaultDisplayOrder.direction` | `dataCollection.capabilities.dataOperations` | `dataCollection.capabilities.collectionOperations` | `dataCollection.capabilities.indexLimits.regular` | `dataCollection.capabilities.indexLimits.unique` | `dataCollection.capabilities.indexLimits.total` | `dataCollection.fields` | `dataCollection.fields.${number}.key` | `dataCollection.fields.${number}.type` | `dataCollection.fields.${number}.typeMetadata.reference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `dataCollection.fields.${number}.typeMetadata.array.elementType` | `dataCollection.fields.${number}.systemField` | `dataCollection.fields.${number}.capabilities.sortable` | `dataCollection.fields.${number}.encrypted` | `dataCollection.fields.${number}.condition.permission` | `dataCollection.permissions.insert` | `dataCollection.permissions.update` | `dataCollection.permissions.remove` | `dataCollection.permissions.read` | `dataCollection.plugins` | `dataCollection.plugins.${number}.publishOptions.defaultStatus` | `dataCollection.plugins.${number}.singleItemOptions.singleItemId` | `dataCollection.plugins.${number}.urlizedOptions.format` | `dataCollection.plugins.${number}.editablePageLinkOptions.isPersisted` | `dataCollection.plugins.${number}.editablePageLinkOptions.isMutable` | `dataCollection.plugins.${number}.type` | `dataCollection.pagingModes`, 7>>;
}
declare function deleteDataCollectionPlugin$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): DeleteDataCollectionPluginSignature;
interface DeleteDataCollectionPluginSignature {
    /**
     * Removes a plugin from a data collection.
     *
     * Removing a plugin disables its functionality for the collection.
     * @param - ID of the data collection to update.
     */
    (dataCollectionId: string, options: NonNullablePaths<DeleteDataCollectionPluginOptions, `pluginType`, 2>): Promise<NonNullablePaths<DeleteDataCollectionPluginResponse, `dataCollection._id` | `dataCollection.collectionType` | `dataCollection.defaultDisplayOrder.fieldKey` | `dataCollection.defaultDisplayOrder.direction` | `dataCollection.capabilities.dataOperations` | `dataCollection.capabilities.collectionOperations` | `dataCollection.capabilities.indexLimits.regular` | `dataCollection.capabilities.indexLimits.unique` | `dataCollection.capabilities.indexLimits.total` | `dataCollection.fields` | `dataCollection.fields.${number}.key` | `dataCollection.fields.${number}.type` | `dataCollection.fields.${number}.typeMetadata.reference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `dataCollection.fields.${number}.typeMetadata.array.elementType` | `dataCollection.fields.${number}.systemField` | `dataCollection.fields.${number}.capabilities.sortable` | `dataCollection.fields.${number}.encrypted` | `dataCollection.fields.${number}.condition.permission` | `dataCollection.permissions.insert` | `dataCollection.permissions.update` | `dataCollection.permissions.remove` | `dataCollection.permissions.read` | `dataCollection.plugins` | `dataCollection.plugins.${number}.publishOptions.defaultStatus` | `dataCollection.plugins.${number}.singleItemOptions.singleItemId` | `dataCollection.plugins.${number}.urlizedOptions.format` | `dataCollection.plugins.${number}.editablePageLinkOptions.isPersisted` | `dataCollection.plugins.${number}.editablePageLinkOptions.isMutable` | `dataCollection.plugins.${number}.type` | `dataCollection.pagingModes`, 7>>;
}
declare function patchDataCollectionField$1(httpClient: HttpClient, __options?: {
    validateRequestSchema?: boolean;
}): PatchDataCollectionFieldSignature;
interface PatchDataCollectionFieldSignature {
    /**
     * Updates specified properties  in a [data collection's](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/create-data-collection) `fields` array.
     *
     * When you change a field's type, existing values aren't migrated. Use [Bulk Update Data Items](https://dev.wix.com/docs/rest/business-solutions/cms/data-items/bulk-update-data-items) or [Bulk Patch Data Items](https://dev.wix.com/docs/rest/business-solutions/cms/data-items/bulk-patch-data-items) to update item values to match the new type.
     *
     * To update properties in a data collection other than `fields`, use [Patch Data Collection](https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections/patch-data-collection).
     * @param - ID of the data collection to update.
     * @param - Field to update.
     */
    (dataCollectionId: string, field: Field): Promise<NonNullablePaths<PatchDataCollectionFieldResponse, `dataCollection._id` | `dataCollection.collectionType` | `dataCollection.defaultDisplayOrder.fieldKey` | `dataCollection.defaultDisplayOrder.direction` | `dataCollection.capabilities.dataOperations` | `dataCollection.capabilities.collectionOperations` | `dataCollection.capabilities.indexLimits.regular` | `dataCollection.capabilities.indexLimits.unique` | `dataCollection.capabilities.indexLimits.total` | `dataCollection.fields` | `dataCollection.fields.${number}.key` | `dataCollection.fields.${number}.type` | `dataCollection.fields.${number}.typeMetadata.reference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencedCollectionId` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingFieldKey` | `dataCollection.fields.${number}.typeMetadata.multiReference.referencingDisplayName` | `dataCollection.fields.${number}.typeMetadata.array.elementType` | `dataCollection.fields.${number}.systemField` | `dataCollection.fields.${number}.capabilities.sortable` | `dataCollection.fields.${number}.encrypted` | `dataCollection.fields.${number}.condition.permission` | `dataCollection.permissions.insert` | `dataCollection.permissions.update` | `dataCollection.permissions.remove` | `dataCollection.permissions.read` | `dataCollection.plugins` | `dataCollection.plugins.${number}.publishOptions.defaultStatus` | `dataCollection.plugins.${number}.singleItemOptions.singleItemId` | `dataCollection.plugins.${number}.urlizedOptions.format` | `dataCollection.plugins.${number}.editablePageLinkOptions.isPersisted` | `dataCollection.plugins.${number}.editablePageLinkOptions.isMutable` | `dataCollection.plugins.${number}.type` | `dataCollection.pagingModes`, 7>>;
}

declare const createDataCollection: MaybeContext<BuildRESTFunction<typeof createDataCollection$1> & typeof createDataCollection$1>;
declare const getDataCollection: MaybeContext<BuildRESTFunction<typeof getDataCollection$1> & typeof getDataCollection$1>;
declare const listDataCollections: MaybeContext<BuildRESTFunction<typeof listDataCollections$1> & typeof listDataCollections$1>;
declare const updateDataCollection: MaybeContext<BuildRESTFunction<typeof updateDataCollection$1> & typeof updateDataCollection$1>;
declare const deleteDataCollection: MaybeContext<BuildRESTFunction<typeof deleteDataCollection$1> & typeof deleteDataCollection$1>;
declare const patchDataCollection: MaybeContext<BuildRESTFunction<typeof patchDataCollection$1> & typeof patchDataCollection$1>;
declare const createDataCollectionField: MaybeContext<BuildRESTFunction<typeof createDataCollectionField$1> & typeof createDataCollectionField$1>;
declare const updateDataCollectionField: MaybeContext<BuildRESTFunction<typeof updateDataCollectionField$1> & typeof updateDataCollectionField$1>;
declare const deleteDataCollectionField: MaybeContext<BuildRESTFunction<typeof deleteDataCollectionField$1> & typeof deleteDataCollectionField$1>;
declare const addDataCollectionPlugin: MaybeContext<BuildRESTFunction<typeof addDataCollectionPlugin$1> & typeof addDataCollectionPlugin$1>;
declare const deleteDataCollectionPlugin: MaybeContext<BuildRESTFunction<typeof deleteDataCollectionPlugin$1> & typeof deleteDataCollectionPlugin$1>;
declare const patchDataCollectionField: MaybeContext<BuildRESTFunction<typeof patchDataCollectionField$1> & typeof patchDataCollectionField$1>;

export { AddDataCollectionPluginOptions, AddDataCollectionPluginResponse, CreateDataCollectionFieldOptions, CreateDataCollectionFieldResponse, DataCollection, DeleteDataCollectionFieldOptions, DeleteDataCollectionFieldResponse, DeleteDataCollectionPluginOptions, DeleteDataCollectionPluginResponse, Field, GetDataCollectionOptions, ListDataCollectionsOptions, ListDataCollectionsResponse, PatchDataCollection, PatchDataCollectionFieldResponse, PatchDataCollectionResponse, UpdateDataCollectionFieldOptions, UpdateDataCollectionFieldResponse, addDataCollectionPlugin, createDataCollection, createDataCollectionField, deleteDataCollection, deleteDataCollectionField, deleteDataCollectionPlugin, getDataCollection, listDataCollections, patchDataCollection, patchDataCollectionField, updateDataCollection, updateDataCollectionField };
