import BaseResource from '../../BaseResource';
import type * as SchemaTypes from '../SchemaTypes';
import type * as SimpleSchemaTypes from '../SimpleSchemaTypes';
export default class ItemType extends BaseResource {
    static readonly TYPE: "item_type";
    /**
     * Create a new model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    create(body: SimpleSchemaTypes.ItemTypeCreateSchema, queryParams?: SimpleSchemaTypes.ItemTypeCreateHrefSchema): Promise<SimpleSchemaTypes.ItemType>;
    /**
     * Create a new model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawCreate(body: SchemaTypes.ItemTypeCreateSchema, queryParams?: SchemaTypes.ItemTypeCreateHrefSchema): Promise<SchemaTypes.ItemTypeCreateTargetSchema>;
    /**
     * Update a model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    update(itemTypeId: string | SimpleSchemaTypes.ItemTypeData, body: SimpleSchemaTypes.ItemTypeUpdateSchema): Promise<SimpleSchemaTypes.ItemType>;
    /**
     * Update a model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawUpdate(itemTypeId: string, body: SchemaTypes.ItemTypeUpdateSchema): Promise<SchemaTypes.ItemTypeUpdateJobSchema>;
    /**
     * List all models
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    list(): Promise<SimpleSchemaTypes.ItemTypeInstancesTargetSchema>;
    /**
     * List all models
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawList(): Promise<SchemaTypes.ItemTypeInstancesTargetSchema>;
    /**
     * Retrieve a model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    find(itemTypeId: string | SimpleSchemaTypes.ItemTypeData): Promise<SimpleSchemaTypes.ItemType>;
    /**
     * Retrieve a model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFind(itemTypeId: string): Promise<SchemaTypes.ItemTypeSelfTargetSchema>;
    /**
     * Duplicate model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/duplicate
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    duplicate(itemTypeId: string | SimpleSchemaTypes.ItemTypeData): Promise<SimpleSchemaTypes.ItemType>;
    /**
     * Duplicate model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/duplicate
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDuplicate(itemTypeId: string): Promise<SchemaTypes.ItemTypeDuplicateTargetSchema>;
    /**
     * Delete a model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    destroy(itemTypeId: string | SimpleSchemaTypes.ItemTypeData, queryParams?: SimpleSchemaTypes.ItemTypeDestroyHrefSchema): Promise<SimpleSchemaTypes.ItemType>;
    /**
     * Delete a model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDestroy(itemTypeId: string, queryParams?: SchemaTypes.ItemTypeDestroyHrefSchema): Promise<SchemaTypes.ItemTypeDestroyJobSchema>;
    /**
     * Reorders a set of fields and fieldsets within the model
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/item-type/reorder_fields_and_fieldsets
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     *
     * @deprecated This API call is to be considered private and might change without notice
     */
    rawReorderFieldsAndFieldsets(itemTypeId: string, body: SchemaTypes.ItemTypeReorderFieldsAndFieldsetsSchema): Promise<SchemaTypes.ItemTypeReorderFieldsAndFieldsetsJobSchema>;
}
