/*
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is
 * regenerated.
*/

import { ServiceClientOptions, RequestOptions, ServiceCallback, HttpOperationResponse } from 'ms-rest';
import * as models from '../models';


/**
 * @class
 * Test
 * __NOTE__: An instance of this class is automatically created for an
 * instance of the TestClient.
 */
export interface Test {


    /**
     * Returns a list of available devices
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {uuid} [options.appUploadId] The ID of the test run
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getDeviceConfigurationsWithHttpOperationResponse(appName: string, ownerName: string, options?: { appUploadId? : string, customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceConfiguration[]>>;

    /**
     * Returns a list of available devices
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {uuid} [options.appUploadId] The ID of the test run
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getDeviceConfigurations(appName: string, ownerName: string, options?: { appUploadId? : string, customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceConfiguration[]>;
    getDeviceConfigurations(appName: string, ownerName: string, callback: ServiceCallback<models.DeviceConfiguration[]>): void;
    getDeviceConfigurations(appName: string, ownerName: string, options: { appUploadId? : string, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceConfiguration[]>): void;


    /**
     * Creates a short ID for a list of devices
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceList
     *
     * @param {array} deviceList.devices
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DeviceSelection>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createDeviceSelectionWithHttpOperationResponse(appName: string, deviceList: models.DeviceList, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSelection>>;

    /**
     * Creates a short ID for a list of devices
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceList
     *
     * @param {array} deviceList.devices
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {DeviceSelection} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {DeviceSelection} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSelection} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    createDeviceSelection(appName: string, deviceList: models.DeviceList, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSelection>;
    createDeviceSelection(appName: string, deviceList: models.DeviceList, ownerName: string, callback: ServiceCallback<models.DeviceSelection>): void;
    createDeviceSelection(appName: string, deviceList: models.DeviceList, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSelection>): void;


    /**
     * Lists device sets belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listDeviceSetsOfOwnerWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet[]>>;

    /**
     * Lists device sets belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    listDeviceSetsOfOwner(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet[]>;
    listDeviceSetsOfOwner(appName: string, ownerName: string, callback: ServiceCallback<models.DeviceSet[]>): void;
    listDeviceSetsOfOwner(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet[]>): void;


    /**
     * Creates a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createDeviceSetOfOwnerWithHttpOperationResponse(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Creates a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {DeviceSet} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    createDeviceSetOfOwner(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    createDeviceSetOfOwner(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, callback: ServiceCallback<models.DeviceSet>): void;
    createDeviceSetOfOwner(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Gets a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getDeviceSetOfOwnerWithHttpOperationResponse(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Gets a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {DeviceSet} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getDeviceSetOfOwner(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    getDeviceSetOfOwner(appName: string, id: string, ownerName: string, callback: ServiceCallback<models.DeviceSet>): void;
    getDeviceSetOfOwner(appName: string, id: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Updates a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateDeviceSetOfOwnerWithHttpOperationResponse(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Updates a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {DeviceSet} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    updateDeviceSetOfOwner(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    updateDeviceSetOfOwner(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, callback: ServiceCallback<models.DeviceSet>): void;
    updateDeviceSetOfOwner(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Deletes a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteDeviceSetOfOwnerWithHttpOperationResponse(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a device set belonging to the owner
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {null} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {null} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    deleteDeviceSetOfOwner(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteDeviceSetOfOwner(appName: string, id: string, ownerName: string, callback: ServiceCallback<void>): void;
    deleteDeviceSetOfOwner(appName: string, id: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Get information about the currently active subscriptions, if any
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Subscription>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getSubscriptionsWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Subscription>>;

    /**
     * Get information about the currently active subscriptions, if any
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Subscription} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Subscription} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Subscription} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getSubscriptions(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Subscription>;
    getSubscriptions(appName: string, ownerName: string, callback: ServiceCallback<models.Subscription>): void;
    getSubscriptions(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Subscription>): void;


    /**
     * Accept a free trial subscription
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Subscription>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createSubscriptionWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.Subscription>>;

    /**
     * Accept a free trial subscription
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Subscription} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Subscription} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link Subscription} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    createSubscription(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.Subscription>;
    createSubscription(appName: string, ownerName: string, callback: ServiceCallback<models.Subscription>): void;
    createSubscription(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.Subscription>): void;


    /**
     * Returns a list of test runs
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTestRunsWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun[]>>;

    /**
     * Returns a list of test runs
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getTestRuns(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun[]>;
    getTestRuns(appName: string, ownerName: string, callback: ServiceCallback<models.TestRun[]>): void;
    getTestRuns(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun[]>): void;


    /**
     * Creates a new test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createTestRunWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Creates a new test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {null} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {null} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    createTestRun(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    createTestRun(appName: string, ownerName: string, callback: ServiceCallback<void>): void;
    createTestRun(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Returns a single test runs
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestRun>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTestRunWithHttpOperationResponse(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun>>;

    /**
     * Returns a single test runs
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestRun} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestRun} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRun} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getTestRun(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun>;
    getTestRun(appName: string, ownerName: string, testRunId: string, callback: ServiceCallback<models.TestRun>): void;
    getTestRun(appName: string, ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun>): void;


    /**
     * Logically deletes a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestRun>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    archiveTestRunWithHttpOperationResponse(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun>>;

    /**
     * Logically deletes a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestRun} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestRun} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRun} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    archiveTestRun(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun>;
    archiveTestRun(appName: string, ownerName: string, testRunId: string, callback: ServiceCallback<models.TestRun>): void;
    archiveTestRun(appName: string, ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun>): void;


    /**
     * Uploads file for a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    startUploadingFileWithHttpOperationResponse(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Uploads file for a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {null} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {null} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    startUploadingFile(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    startUploadingFile(appName: string, ownerName: string, testRunId: string, callback: ServiceCallback<void>): void;
    startUploadingFile(appName: string, ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {object} fileInfo File hash information
     *
     * @param {string} fileInfo.fileType Type of the file. Possible values include:
     * 'dsym-file', 'app-file', 'test-file'
     *
     * @param {string} fileInfo.checksum SHA256 hash of the file
     *
     * @param {string} fileInfo.relativePath Relative path of the file
     *
     * @param {string} [fileInfo.byteRange] Range of bytes required to verify
     * ownership of the file
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    uploadHashWithHttpOperationResponse(appName: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {object} fileInfo File hash information
     *
     * @param {string} fileInfo.fileType Type of the file. Possible values include:
     * 'dsym-file', 'app-file', 'test-file'
     *
     * @param {string} fileInfo.checksum SHA256 hash of the file
     *
     * @param {string} fileInfo.relativePath Relative path of the file
     *
     * @param {string} [fileInfo.byteRange] Range of bytes required to verify
     * ownership of the file
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {null} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {null} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    uploadHash(appName: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    uploadHash(appName: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, testRunId: string, callback: ServiceCallback<void>): void;
    uploadHash(appName: string, fileInfo: models.TestCloudFileHashDeprecated, ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {array} fileInfo File hash information
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    uploadHashesBatchWithHttpOperationResponse(appName: string, fileInfo: models.TestCloudFileHash[], ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestCloudFileHashResponse[]>>;

    /**
     * Adds file with the given hash to a test run
     *
     * @param {string} appName The name of the application
     *
     * @param {array} fileInfo File hash information
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    uploadHashesBatch(appName: string, fileInfo: models.TestCloudFileHash[], ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestCloudFileHashResponse[]>;
    uploadHashesBatch(appName: string, fileInfo: models.TestCloudFileHash[], ownerName: string, testRunId: string, callback: ServiceCallback<models.TestCloudFileHashResponse[]>): void;
    uploadHashesBatch(appName: string, fileInfo: models.TestCloudFileHash[], ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestCloudFileHashResponse[]>): void;


    /**
     * Returns a single test report
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestReport>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTestReportWithHttpOperationResponse(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestReport>>;

    /**
     * Returns a single test report
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {uuid} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestReport} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestReport} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestReport} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getTestReport(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestReport>;
    getTestReport(appName: string, ownerName: string, testRunId: string, callback: ServiceCallback<models.TestReport>): void;
    getTestReport(appName: string, ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestReport>): void;


    /**
     * Starts test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} startOptions Option required to start the test run
     *
     * @param {string} startOptions.testFramework Test framework used by tests.
     *
     * @param {string} startOptions.deviceSelection Device selection string.
     *
     * @param {string} [startOptions.language] Language that should be used to run
     * tests.
     *
     * @param {string} [startOptions.locale] Locale that should be used to run
     * tests.
     *
     * @param {string} [startOptions.testSeries] Name of the test series.
     *
     * @param {object} [startOptions.testParameters] A JSON dictionary with
     * additional test parameters
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestCloudStartTestRunResult>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    startTestRunWithHttpOperationResponse(appName: string, ownerName: string, startOptions: models.TestCloudStartTestRunOptions, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestCloudStartTestRunResult>>;

    /**
     * Starts test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} startOptions Option required to start the test run
     *
     * @param {string} startOptions.testFramework Test framework used by tests.
     *
     * @param {string} startOptions.deviceSelection Device selection string.
     *
     * @param {string} [startOptions.language] Language that should be used to run
     * tests.
     *
     * @param {string} [startOptions.locale] Locale that should be used to run
     * tests.
     *
     * @param {string} [startOptions.testSeries] Name of the test series.
     *
     * @param {object} [startOptions.testParameters] A JSON dictionary with
     * additional test parameters
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestCloudStartTestRunResult} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestCloudStartTestRunResult} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestCloudStartTestRunResult} for more
     *                      information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    startTestRun(appName: string, ownerName: string, startOptions: models.TestCloudStartTestRunOptions, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestCloudStartTestRunResult>;
    startTestRun(appName: string, ownerName: string, startOptions: models.TestCloudStartTestRunOptions, testRunId: string, callback: ServiceCallback<models.TestCloudStartTestRunResult>): void;
    startTestRun(appName: string, ownerName: string, startOptions: models.TestCloudStartTestRunOptions, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestCloudStartTestRunResult>): void;


    /**
     * Gets state of the test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestRunState>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getTestRunStateWithHttpOperationResponse(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRunState>>;

    /**
     * Gets state of the test run
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestRunState} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestRunState} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRunState} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getTestRunState(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRunState>;
    getTestRunState(appName: string, ownerName: string, testRunId: string, callback: ServiceCallback<models.TestRunState>): void;
    getTestRunState(appName: string, ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRunState>): void;


    /**
     * Stop a test run execution
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run to be stopped
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestRun>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    stopTestRunWithHttpOperationResponse(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun>>;

    /**
     * Stop a test run execution
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testRunId The ID of the test run to be stopped
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestRun} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestRun} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestRun} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    stopTestRun(appName: string, ownerName: string, testRunId: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun>;
    stopTestRun(appName: string, ownerName: string, testRunId: string, callback: ServiceCallback<models.TestRun>): void;
    stopTestRun(appName: string, ownerName: string, testRunId: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun>): void;


    /**
     * Returns list of all test series for an application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getAllTestSeriesWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestSeries[]>>;

    /**
     * Returns list of all test series for an application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getAllTestSeries(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestSeries[]>;
    getAllTestSeries(appName: string, ownerName: string, callback: ServiceCallback<models.TestSeries[]>): void;
    getAllTestSeries(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestSeries[]>): void;


    /**
     * Creates new test series for an application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} testSeriesName
     *
     * @param {string} testSeriesName.name Name of the new test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestSeries>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createTestSeriesWithHttpOperationResponse(appName: string, ownerName: string, testSeriesName: models.TestSeriesName, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestSeries>>;

    /**
     * Creates new test series for an application
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} testSeriesName
     *
     * @param {string} testSeriesName.name Name of the new test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestSeries} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestSeries} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestSeries} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    createTestSeries(appName: string, ownerName: string, testSeriesName: models.TestSeriesName, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestSeries>;
    createTestSeries(appName: string, ownerName: string, testSeriesName: models.TestSeriesName, callback: ServiceCallback<models.TestSeries>): void;
    createTestSeries(appName: string, ownerName: string, testSeriesName: models.TestSeriesName, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestSeries>): void;


    /**
     * Deletes a single test series
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteTestSeriesWithHttpOperationResponse(appName: string, ownerName: string, testSeriesSlug: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a single test series
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {null} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {null} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    deleteTestSeries(appName: string, ownerName: string, testSeriesSlug: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteTestSeries(appName: string, ownerName: string, testSeriesSlug: string, callback: ServiceCallback<void>): void;
    deleteTestSeries(appName: string, ownerName: string, testSeriesSlug: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;


    /**
     * Updates name and slug of a test series
     *
     * @param {string} appName The name of the application
     *
     * @param {object} name
     *
     * @param {string} name.name Name of the new test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<TestSeries>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    patchTestSeriesWithHttpOperationResponse(appName: string, name: models.TestSeriesName, ownerName: string, testSeriesSlug: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestSeries>>;

    /**
     * Updates name and slug of a test series
     *
     * @param {string} appName The name of the application
     *
     * @param {object} name
     *
     * @param {string} name.name Name of the new test series
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {TestSeries} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {TestSeries} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link TestSeries} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    patchTestSeries(appName: string, name: models.TestSeriesName, ownerName: string, testSeriesSlug: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestSeries>;
    patchTestSeries(appName: string, name: models.TestSeriesName, ownerName: string, testSeriesSlug: string, callback: ServiceCallback<models.TestSeries>): void;
    patchTestSeries(appName: string, name: models.TestSeriesName, ownerName: string, testSeriesSlug: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestSeries>): void;


    /**
     * Returns list of all test runs for a given test series
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getAllTestRunsForSeriesWithHttpOperationResponse(appName: string, ownerName: string, testSeriesSlug: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.TestRun[]>>;

    /**
     * Returns list of all test runs for a given test series
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {string} testSeriesSlug The slug of the test series
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getAllTestRunsForSeries(appName: string, ownerName: string, testSeriesSlug: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.TestRun[]>;
    getAllTestRunsForSeries(appName: string, ownerName: string, testSeriesSlug: string, callback: ServiceCallback<models.TestRun[]>): void;
    getAllTestRunsForSeries(appName: string, ownerName: string, testSeriesSlug: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.TestRun[]>): void;


    /**
     * Lists device sets belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<Array>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    listDeviceSetsOfUserWithHttpOperationResponse(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet[]>>;

    /**
     * Lists device sets belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {Array} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {Array} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    listDeviceSetsOfUser(appName: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet[]>;
    listDeviceSetsOfUser(appName: string, ownerName: string, callback: ServiceCallback<models.DeviceSet[]>): void;
    listDeviceSetsOfUser(appName: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet[]>): void;


    /**
     * Creates a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    createDeviceSetOfUserWithHttpOperationResponse(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Creates a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {DeviceSet} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    createDeviceSetOfUser(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    createDeviceSetOfUser(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, callback: ServiceCallback<models.DeviceSet>): void;
    createDeviceSetOfUser(appName: string, deviceSet: models.DeviceSetUpdate, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Gets a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    getDeviceSetOfUserWithHttpOperationResponse(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Gets a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {DeviceSet} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    getDeviceSetOfUser(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    getDeviceSetOfUser(appName: string, id: string, ownerName: string, callback: ServiceCallback<models.DeviceSet>): void;
    getDeviceSetOfUser(appName: string, id: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Updates a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<DeviceSet>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    updateDeviceSetOfUserWithHttpOperationResponse(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<models.DeviceSet>>;

    /**
     * Updates a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {object} deviceSet
     *
     * @param {array} deviceSet.devices List of device IDs
     *
     * @param {string} deviceSet.name The name of the device set
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {DeviceSet} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {DeviceSet} [result]   - The deserialized result object if an error did not occur.
     *                      See {@link DeviceSet} for more information.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    updateDeviceSetOfUser(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<models.DeviceSet>;
    updateDeviceSetOfUser(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, callback: ServiceCallback<models.DeviceSet>): void;
    updateDeviceSetOfUser(appName: string, deviceSet: models.DeviceSetUpdate, id: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<models.DeviceSet>): void;


    /**
     * Deletes a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @returns {Promise} A promise is returned
     *
     * @resolve {HttpOperationResponse<null>} - The deserialized result object.
     *
     * @reject {Error|ServiceError} - The error object.
     */
    deleteDeviceSetOfUserWithHttpOperationResponse(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<HttpOperationResponse<void>>;

    /**
     * Deletes a device set belonging to the user
     *
     * @param {string} appName The name of the application
     *
     * @param {uuid} id The UUID of the device set
     *
     * @param {string} ownerName The name of the owner
     *
     * @param {object} [options] Optional Parameters.
     *
     * @param {object} [options.customHeaders] Headers that will be added to the
     * request
     *
     * @param {ServiceCallback} [optionalCallback] - The optional callback.
     *
     * @returns {ServiceCallback|Promise} If a callback was passed as the last
     * parameter then it returns the callback else returns a Promise.
     *
     * {Promise} A promise is returned.
     *
     *                      @resolve {null} - The deserialized result object.
     *
     *                      @reject {Error|ServiceError} - The error object.
     *
     * {ServiceCallback} optionalCallback(err, result, request, response)
     *
     *                      {Error|ServiceError}  err        - The Error object if an error occurred, null otherwise.
     *
     *                      {null} [result]   - The deserialized result object if an error did not occur.
     *
     *                      {WebResource} [request]  - The HTTP Request object if an error did not occur.
     *
     *                      {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur.
     */
    deleteDeviceSetOfUser(appName: string, id: string, ownerName: string, options?: { customHeaders? : { [headerName: string]: string; } }): Promise<void>;
    deleteDeviceSetOfUser(appName: string, id: string, ownerName: string, callback: ServiceCallback<void>): void;
    deleteDeviceSetOfUser(appName: string, id: string, ownerName: string, options: { customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback<void>): void;
}
