import type { EndpointRequest, Operation } from './../../../types/common.ts';
export interface IEndpoints {
    'DELETE /directory/templates/deviceTemplates/{deviceTemplate-id}': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}', 'delete'>;
    'GET /directory/templates/deviceTemplates': Operation<'/directory/templates/deviceTemplates', 'get'>;
    'GET /directory/templates/deviceTemplates/{deviceTemplate-id}': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}', 'get'>;
    'PATCH /directory/templates/deviceTemplates/{deviceTemplate-id}': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}', 'patch'>;
    'POST /directory/templates/deviceTemplates': Operation<'/directory/templates/deviceTemplates', 'post'>;
    'POST /directory/templates/deviceTemplates/{deviceTemplate-id}/createDeviceFromTemplate': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}/createDeviceFromTemplate', 'post'>;
    'GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances', 'get'>;
    'GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances/{device-id}': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances/{device-id}', 'get'>;
    'GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}/owners', 'get'>;
    'GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners/{directoryObject-id}': Operation<'/directory/templates/deviceTemplates/{deviceTemplate-id}/owners/{directoryObject-id}', 'get'>;
}
/**
 * `DELETE /directory/templates/deviceTemplates/{deviceTemplate-id}`
 *
 * Delete a registered deviceTemplate. You must first delete all devices linked to the template before deleting the template itself. Only registered owners of the template can perform this operation.
 */
export declare function del(params?: IEndpoints['DELETE /directory/templates/deviceTemplates/{deviceTemplate-id}']['parameters']): EndpointRequest<IEndpoints['DELETE /directory/templates/deviceTemplates/{deviceTemplate-id}']['response']>;
/**
 * `GET /directory/templates/deviceTemplates`
 *
 * Get a list of deviceTemplate objects registered in the directory.
 */
export declare function list(params?: IEndpoints['GET /directory/templates/deviceTemplates']['parameters']): EndpointRequest<IEndpoints['GET /directory/templates/deviceTemplates']['response']>;
/**
 * `GET /directory/templates/deviceTemplates/{deviceTemplate-id}`
 *
 * Get the properties and relationships of a deviceTemplate object.
 */
export declare function get(params?: IEndpoints['GET /directory/templates/deviceTemplates/{deviceTemplate-id}']['parameters']): EndpointRequest<IEndpoints['GET /directory/templates/deviceTemplates/{deviceTemplate-id}']['response']>;
/**
 * `PATCH /directory/templates/deviceTemplates/{deviceTemplate-id}`
 *
 */
export declare function update(body: IEndpoints['PATCH /directory/templates/deviceTemplates/{deviceTemplate-id}']['body'], params?: IEndpoints['PATCH /directory/templates/deviceTemplates/{deviceTemplate-id}']['parameters']): EndpointRequest<IEndpoints['PATCH /directory/templates/deviceTemplates/{deviceTemplate-id}']['response']>;
/**
 * `POST /directory/templates/deviceTemplates`
 *
 * Create a new deviceTemplate used to identify attributes and manage a group of devices with similar characteristics.
 */
export declare function create(body: IEndpoints['POST /directory/templates/deviceTemplates']['body']): EndpointRequest<IEndpoints['POST /directory/templates/deviceTemplates']['response']>;
export declare const createDeviceFromTemplate: {
    /**
     * `POST /directory/templates/deviceTemplates/{deviceTemplate-id}/createDeviceFromTemplate`
     *
     * Create a new device from a deviceTemplate.
     */
    create: (body: IEndpoints["POST /directory/templates/deviceTemplates/{deviceTemplate-id}/createDeviceFromTemplate"]["body"], params?: IEndpoints["POST /directory/templates/deviceTemplates/{deviceTemplate-id}/createDeviceFromTemplate"]["parameters"]) => EndpointRequest<IEndpoints["POST /directory/templates/deviceTemplates/{deviceTemplate-id}/createDeviceFromTemplate"]["response"]>;
};
export declare const deviceInstances: {
    /**
     * `GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances`
     *
     * Collection of device objects created based on this template.
     */
    list: (params?: IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances"]["parameters"]) => EndpointRequest<IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances"]["response"]>;
    /**
     * `GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances/{device-id}`
     *
     * Collection of device objects created based on this template.
     */
    get: (params?: IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances/{device-id}"]["parameters"]) => EndpointRequest<IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/deviceInstances/{device-id}"]["response"]>;
};
export declare const owners: {
    /**
     * `GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners`
     *
     * Get a list of owners for a deviceTemplate object. Owners can be represented as service principals, users, or applications.
     */
    list: (params?: IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners"]["parameters"]) => EndpointRequest<IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners"]["response"]>;
    /**
     * `GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners/{directoryObject-id}`
     *
     * Collection of directory objects that can manage the device template and the related deviceInstances. Owners can be represented as service principals, users, or applications. An owner has full privileges over the device template and doesn&#x27;t require other administrator roles to create, update, or delete devices from this template, as well as to add or remove template owners. There can be a maximum of 100 owners on a device template.  Supports $expand.
     */
    get: (params?: IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners/{directoryObject-id}"]["parameters"]) => EndpointRequest<IEndpoints["GET /directory/templates/deviceTemplates/{deviceTemplate-id}/owners/{directoryObject-id}"]["response"]>;
};
