import BaseResource from '../../BaseResource';
import type * as SchemaTypes from '../SchemaTypes';
import type * as SimpleSchemaTypes from '../SimpleSchemaTypes';
export default class Plugin extends BaseResource {
    static readonly TYPE: "plugin";
    /**
     * Create a new plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    create(body: SimpleSchemaTypes.PluginCreateSchema): Promise<SimpleSchemaTypes.Plugin>;
    /**
     * Create a new plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawCreate(body: SchemaTypes.PluginCreateSchema): Promise<SchemaTypes.PluginCreateTargetSchema>;
    /**
     * Update a plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    update(pluginId: string | SimpleSchemaTypes.PluginData, body: SimpleSchemaTypes.PluginUpdateSchema): Promise<SimpleSchemaTypes.Plugin>;
    /**
     * Update a plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawUpdate(pluginId: string, body: SchemaTypes.PluginUpdateSchema): Promise<SchemaTypes.PluginUpdateTargetSchema>;
    /**
     * List all plugins
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    list(): Promise<SimpleSchemaTypes.PluginInstancesTargetSchema>;
    /**
     * List all plugins
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawList(): Promise<SchemaTypes.PluginInstancesTargetSchema>;
    /**
     * Retrieve a plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    find(pluginId: string | SimpleSchemaTypes.PluginData): Promise<SimpleSchemaTypes.Plugin>;
    /**
     * Retrieve a plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFind(pluginId: string): Promise<SchemaTypes.PluginSelfTargetSchema>;
    /**
     * Delete a plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    destroy(pluginId: string | SimpleSchemaTypes.PluginData): Promise<SimpleSchemaTypes.Plugin>;
    /**
     * Delete a plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDestroy(pluginId: string): Promise<SchemaTypes.PluginDestroyTargetSchema>;
    /**
     * Retrieve all fields using the plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/fields
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    fields(pluginId: string | SimpleSchemaTypes.PluginData): Promise<SimpleSchemaTypes.PluginFieldsTargetSchema>;
    /**
     * Retrieve all fields using the plugin
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/plugin/fields
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFields(pluginId: string): Promise<SchemaTypes.PluginFieldsTargetSchema>;
}
