import BaseResource from '../../BaseResource';
import type * as SchemaTypes from '../SchemaTypes';
import type * as SimpleSchemaTypes from '../SimpleSchemaTypes';
export default class Environment extends BaseResource {
    static readonly TYPE: "environment";
    /**
     * Fork an existing environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/fork
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    fork(environmentId: string | SimpleSchemaTypes.EnvironmentData, body: SimpleSchemaTypes.EnvironmentForkSchema, queryParams?: SimpleSchemaTypes.EnvironmentForkHrefSchema): Promise<SimpleSchemaTypes.Environment>;
    /**
     * Fork an existing environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/fork
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFork(environmentId: string, body: SchemaTypes.EnvironmentForkSchema, queryParams?: SchemaTypes.EnvironmentForkHrefSchema): Promise<SchemaTypes.EnvironmentForkJobSchema>;
    /**
     * Promote an environment to primary
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/promote
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    promote(environmentId: string | SimpleSchemaTypes.EnvironmentData): Promise<SimpleSchemaTypes.Environment>;
    /**
     * Promote an environment to primary
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/promote
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawPromote(environmentId: string): Promise<SchemaTypes.EnvironmentPromoteTargetSchema>;
    /**
     * Rename an environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/rename
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rename(environmentId: string | SimpleSchemaTypes.EnvironmentData, body: SimpleSchemaTypes.EnvironmentRenameSchema): Promise<SimpleSchemaTypes.Environment>;
    /**
     * Rename an environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/rename
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawRename(environmentId: string, body: SchemaTypes.EnvironmentRenameSchema): Promise<SchemaTypes.EnvironmentRenameTargetSchema>;
    /**
     * List all environments
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    list(): Promise<SimpleSchemaTypes.EnvironmentInstancesTargetSchema>;
    /**
     * List all environments
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawList(): Promise<SchemaTypes.EnvironmentInstancesTargetSchema>;
    /**
     * Retrieve a environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    find(environmentId: string | SimpleSchemaTypes.EnvironmentData): Promise<SimpleSchemaTypes.Environment>;
    /**
     * Retrieve a environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFind(environmentId: string): Promise<SchemaTypes.EnvironmentSelfTargetSchema>;
    /**
     * Delete a environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    destroy(environmentId: string | SimpleSchemaTypes.EnvironmentData): Promise<SimpleSchemaTypes.Environment>;
    /**
     * Delete a environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/environment/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDestroy(environmentId: string): Promise<SchemaTypes.EnvironmentDestroyJobSchema>;
}
