import BaseResource from '../../BaseResource';
import type * as SchemaTypes from '../SchemaTypes';
import type * as SimpleSchemaTypes from '../SimpleSchemaTypes';
export default class MenuItem extends BaseResource {
    static readonly TYPE: "menu_item";
    /**
     * Create a new menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    create(body: SimpleSchemaTypes.MenuItemCreateSchema): Promise<SimpleSchemaTypes.MenuItem>;
    /**
     * Create a new menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawCreate(body: SchemaTypes.MenuItemCreateSchema): Promise<SchemaTypes.MenuItemCreateTargetSchema>;
    /**
     * Update a menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    update(menuItemId: string | SimpleSchemaTypes.MenuItemData, body: SimpleSchemaTypes.MenuItemUpdateSchema): Promise<SimpleSchemaTypes.MenuItem>;
    /**
     * Update a menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawUpdate(menuItemId: string, body: SchemaTypes.MenuItemUpdateSchema): Promise<SchemaTypes.MenuItemUpdateTargetSchema>;
    /**
     * List all menu items
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    list(queryParams?: SimpleSchemaTypes.MenuItemInstancesHrefSchema): Promise<SimpleSchemaTypes.MenuItemInstancesTargetSchema>;
    /**
     * List all menu items
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawList(queryParams?: SchemaTypes.MenuItemInstancesHrefSchema): Promise<SchemaTypes.MenuItemInstancesTargetSchema>;
    /**
     * Retrieve a menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    find(menuItemId: string | SimpleSchemaTypes.MenuItemData): Promise<SimpleSchemaTypes.MenuItem>;
    /**
     * Retrieve a menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFind(menuItemId: string): Promise<SchemaTypes.MenuItemSelfTargetSchema>;
    /**
     * Delete a menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    destroy(menuItemId: string | SimpleSchemaTypes.MenuItemData): Promise<SimpleSchemaTypes.MenuItem>;
    /**
     * Delete a menu item
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDestroy(menuItemId: string): Promise<SchemaTypes.MenuItemDestroyTargetSchema>;
    /**
     * Reorders a set of menu items
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/reorder
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     *
     * @deprecated This API call is to be considered private and might change without notice
     */
    reorder(body: SimpleSchemaTypes.MenuItemReorderSchema): Promise<SimpleSchemaTypes.MenuItemReorderJobSchema>;
    /**
     * Reorders a set of menu items
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/menu-item/reorder
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     *
     * @deprecated This API call is to be considered private and might change without notice
     */
    rawReorder(body: SchemaTypes.MenuItemReorderSchema): Promise<SchemaTypes.MenuItemReorderJobSchema>;
}
