import { type ResourceTypeSkeleton } from '../api/ResourceTypesApi';
import { State } from '../shared/State';
import { ExportMetaData } from './OpsTypes';
export type ResourceType = {
    /**
     * Read resource type
     * @param resourceTypeUuid resource type uuid
     * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
     */
    readResourceType(resourceTypeUuid: string): Promise<ResourceTypeSkeleton>;
    /**
     * Read all resource types
     * @returns {Promise<ResourceTypeSkeleton[]>} a promise that resolves to an array of resource type objects
     */
    readResourceTypes(): Promise<ResourceTypeSkeleton[]>;
    /**
     * Read resource type by name
     * @param {string} resourceTypeName resource type name
     * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
     */
    readResourceTypeByName(resourceTypeName: string): Promise<ResourceTypeSkeleton>;
    /**
     * Create resource type
     * @param resourceTypeData resource type data
     * @param resourceTypeUuid resource type uuid
     * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
     */
    createResourceType(resourceTypeData: ResourceTypeSkeleton, resourceTypeUuid?: string): Promise<ResourceTypeSkeleton>;
    /**
     * Update resource type
     * @param {string} resourceTypeData resource type data
     * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
     */
    updateResourceType(resourceTypeUuid: string, resourceTypeData: ResourceTypeSkeleton): Promise<ResourceTypeSkeleton>;
    /**
     * Delete resource type
     * @param {string} resourceTypeUuid resource type uuid
     * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object
     */
    deleteResourceType(resourceTypeUuid: string): Promise<ResourceTypeSkeleton>;
    /**
     * Delete resource type by name
     * @param {string} resourceTypeName resource type name
     * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object
     */
    deleteResourceTypeByName(resourceTypeName: string): Promise<ResourceTypeSkeleton>;
    /**
     * Export resource type
     * @param {string} resourceTypeUuid resource type uuid
     * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object
     */
    exportResourceType(resourceTypeUuid: string): Promise<ResourceTypeExportInterface>;
    /**
     * Export resource type by name
     * @param {string} resourceTypeName resource type name
     * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object
     */
    exportResourceTypeByName(resourceTypeName: string): Promise<ResourceTypeExportInterface>;
    /**
     * Export resource types
     * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object
     */
    exportResourceTypes(): Promise<ResourceTypeExportInterface>;
    /**
     * Import resource type by uuid
     * @param {string} resourceTypeUuid client uuid
     * @param {ResourceTypeExportInterface} importData import data
     */
    importResourceType(resourceTypeUuid: string, importData: ResourceTypeExportInterface): Promise<any>;
    /**
     * Import resource type by name
     * @param {string} resourceTypeName client id
     * @param {ResourceTypeExportInterface} importData import data
     */
    importResourceTypeByName(resourceTypeName: string, importData: ResourceTypeExportInterface): Promise<any>;
    /**
     * Import first resource type
     * @param {ResourceTypeExportInterface} importData import data
     */
    importFirstResourceType(importData: ResourceTypeExportInterface): Promise<any>;
    /**
     * Import resource types
     * @param {ResourceTypeExportInterface} importData import data
     */
    importResourceTypes(importData: ResourceTypeExportInterface): Promise<any[]>;
    /**
     * Get resource type
     * @param resourceTypeUuid resource type uuid
     * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
     * @deprecated since v2.0.0 use {@link Agent.readResourceType | readResourceType} instead
     * ```javascript
     * readResourceType(resourceTypeUuid: string): Promise<ResourceTypeSkeleton>
     * ```
     * @group Deprecated
     */
    getResourceType(resourceTypeUuid: string): Promise<ResourceTypeSkeleton>;
    /**
     * Get all resource types
     * @returns {Promise<ResourceTypeSkeleton[]>} a promise that resolves to an array of resource type objects
     * @deprecated since v2.0.0 use {@link Agent.readResourceTypes | readResourceTypes} instead
     * ```javascript
     * readResourceTypes(): Promise<ResourceTypeSkeleton[]>
     * ```
     * @group Deprecated
     */
    getResourceTypes(): Promise<ResourceTypeSkeleton[]>;
    /**
     * Get resource type by name
     * @param {string} resourceTypeName resource type name
     * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
     * @deprecated since v2.0.0 use {@link Agent.readResourceTypeByName | readResourceTypeByName} instead
     * ```javascript
     * readResourceTypeByName(resourceTypeName: string): Promise<ResourceTypeSkeleton>
     * ```
     * @group Deprecated
     */
    getResourceTypeByName(resourceTypeName: string): Promise<ResourceTypeSkeleton>;
};
declare const _default: (state: State) => ResourceType;
export default _default;
export interface ResourceTypeExportInterface {
    meta?: ExportMetaData;
    resourcetype: Record<string, ResourceTypeSkeleton>;
}
/**
 * Create an empty export template
 * @returns {ResourceTypeExportInterface} an empty export template
 */
export declare function createResourceTypeExportTemplate({ state, }: {
    state: State;
}): ResourceTypeExportInterface;
export declare function readResourceType({ resourceTypeUuid, state, }: {
    resourceTypeUuid: string;
    state: State;
}): Promise<any>;
/**
 * Get all resource types
 * @returns {Promise} a promise that resolves to an array of resource type objects
 */
export declare function readResourceTypes({ state, }: {
    state: State;
}): Promise<ResourceTypeSkeleton[]>;
/**
 * Get resource type by name
 * @param {string} resourceTypeName resource type name
 * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
 */
export declare function readResourceTypeByName({ resourceTypeName, state, }: {
    resourceTypeName: string;
    state: State;
}): Promise<ResourceTypeSkeleton>;
/**
 * Update resource type
 * @param {string} resourceTypeData resource type id
 * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object
 */
export declare function updateResourceType({ resourceTypeUuid, resourceTypeData, state, }: {
    resourceTypeUuid: string;
    resourceTypeData: ResourceTypeSkeleton;
    state: State;
}): Promise<ResourceTypeSkeleton>;
export declare function deleteResourceType({ resourceTypeUuid, state, }: {
    resourceTypeUuid: string;
    state: State;
}): Promise<any>;
/**
 * Delete resource type by name
 * @param {string} resourceTypeName resource type name
 * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object
 */
export declare function deleteResourceTypeByName({ resourceTypeName, state, }: {
    resourceTypeName: string;
    state: State;
}): Promise<ResourceTypeSkeleton>;
/**
 * Export resource type
 * @param {string} resourceTypeUuid resource type uuid
 * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object
 */
export declare function exportResourceType({ resourceTypeUuid, state, }: {
    resourceTypeUuid: string;
    state: State;
}): Promise<ResourceTypeExportInterface>;
/**
 * Export resource type by name
 * @param {string} resourceTypeName resource type name
 * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object
 */
export declare function exportResourceTypeByName({ resourceTypeName, state, }: {
    resourceTypeName: string;
    state: State;
}): Promise<ResourceTypeExportInterface>;
/**
 * Export resource types
 * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object
 */
export declare function exportResourceTypes({ state, }: {
    state: State;
}): Promise<ResourceTypeExportInterface>;
/**
 * Import resource type by uuid
 * @param {string} resourceTypeUuid client uuid
 * @param {ResourceTypeExportInterface} importData import data
 */
export declare function importResourceType({ resourceTypeUuid, importData, state, }: {
    resourceTypeUuid: string;
    importData: ResourceTypeExportInterface;
    state: State;
}): Promise<any>;
/**
 * Import resource type by name
 * @param {string} resourceTypeName client id
 * @param {ResourceTypeExportInterface} importData import data
 */
export declare function importResourceTypeByName({ resourceTypeName, importData, state, }: {
    resourceTypeName: string;
    importData: ResourceTypeExportInterface;
    state: State;
}): Promise<any>;
/**
 * Import first resource type
 * @param {ResourceTypeExportInterface} importData import data
 */
export declare function importFirstResourceType({ importData, state, }: {
    importData: ResourceTypeExportInterface;
    state: State;
}): Promise<any>;
/**
 * Import resource types
 * @param {ResourceTypeExportInterface} importData import data
 */
export declare function importResourceTypes({ importData, state, }: {
    importData: ResourceTypeExportInterface;
    state: State;
}): Promise<any[]>;
export declare function createResourceType({ resourceTypeData, resourceTypeUuid, state, }: {
    resourceTypeData: ResourceTypeSkeleton;
    resourceTypeUuid?: string;
    state: State;
}): Promise<ResourceTypeSkeleton>;
//# sourceMappingURL=ResourceTypeOps.d.ts.map