/**
 * Traccar
 * Traccar GPS tracking server API documentation. To use the API you need to have a server instance. For testing purposes you can use one of free [demo servers](https://www.traccar.org/demo-server/). For production use you can install your own server or get a [subscription service](https://www.traccar.org/product/tracking-server/).
 *
 * OpenAPI spec version: 4.11
 * Contact: support@traccar.org
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */
import { AxiosPromise, AxiosInstance } from 'axios';
import { Configuration } from '../configuration';
import { RequestArgs, BaseAPI } from '../base';
import { Command } from '../models';
import { CommandType } from '../models';
/**
 * CommandsApi - axios parameter creator
 * @export
 */
export declare const CommandsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Without params, it returns a list of Saved Commands the user has access to
     * @summary Fetch a list of Saved Commands
     * @param {boolean} [all] Can only be used by admins or managers to fetch all entities
     * @param {number} [userId] Standard users can use this only with their own _userId_
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {number} [groupId] Standard users can use this only with _groupId_s, they have access to
     * @param {boolean} [refresh]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsGet: (all?: boolean, userId?: number, deviceId?: number, groupId?: number, refresh?: boolean, options?: any) => Promise<RequestArgs>;
    /**
     *
     * @summary Delete a Saved Command
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsIdDelete: (id: number, options?: any) => Promise<RequestArgs>;
    /**
     *
     * @summary Update a Saved Command
     * @param {Command} body
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsIdPut: (body: Command, id: number, options?: any) => Promise<RequestArgs>;
    /**
     *
     * @summary Create a Saved Command
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsPost: (body: Command, options?: any) => Promise<RequestArgs>;
    /**
     * Return a list of saved commands linked to Device and its groups, filtered by current Device protocol support
     * @summary Fetch a list of Saved Commands supported by Device at the moment
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsSendGet: (deviceId?: number, options?: any) => Promise<RequestArgs>;
    /**
     * Dispatch a new command or Saved Command if _body.id_ set
     * @summary Dispatch commands to device
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsSendPost: (body: Command, options?: any) => Promise<RequestArgs>;
    /**
     *
     * @summary Fetch a list of available Commands for the Device or all possible Commands if Device ommited
     * @param {number} [deviceId] Internal device identifier. Only works if device has already reported some locations
     * @param {string} [protocol] Protocol name. Can be used instead of device id
     * @param {boolean} [textChannel] When &#x60;true&#x60; return SMS commands. If not specified or &#x60;false&#x60; return data commands
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsTypesGet: (deviceId?: number, protocol?: string, textChannel?: boolean, options?: any) => Promise<RequestArgs>;
};
/**
 * CommandsApi - functional programming interface
 * @export
 */
export declare const CommandsApiFp: (configuration?: Configuration) => {
    /**
     * Without params, it returns a list of Saved Commands the user has access to
     * @summary Fetch a list of Saved Commands
     * @param {boolean} [all] Can only be used by admins or managers to fetch all entities
     * @param {number} [userId] Standard users can use this only with their own _userId_
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {number} [groupId] Standard users can use this only with _groupId_s, they have access to
     * @param {boolean} [refresh]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsGet(all?: boolean, userId?: number, deviceId?: number, groupId?: number, refresh?: boolean, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Command>>>;
    /**
     *
     * @summary Delete a Saved Command
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsIdDelete(id: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @summary Update a Saved Command
     * @param {Command} body
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsIdPut(body: Command, id: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Command>>;
    /**
     *
     * @summary Create a Saved Command
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsPost(body: Command, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Command>>;
    /**
     * Return a list of saved commands linked to Device and its groups, filtered by current Device protocol support
     * @summary Fetch a list of Saved Commands supported by Device at the moment
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsSendGet(deviceId?: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Command>>>;
    /**
     * Dispatch a new command or Saved Command if _body.id_ set
     * @summary Dispatch commands to device
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsSendPost(body: Command, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Command>>;
    /**
     *
     * @summary Fetch a list of available Commands for the Device or all possible Commands if Device ommited
     * @param {number} [deviceId] Internal device identifier. Only works if device has already reported some locations
     * @param {string} [protocol] Protocol name. Can be used instead of device id
     * @param {boolean} [textChannel] When &#x60;true&#x60; return SMS commands. If not specified or &#x60;false&#x60; return data commands
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsTypesGet(deviceId?: number, protocol?: string, textChannel?: boolean, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<CommandType>>>;
};
/**
 * CommandsApi - factory interface
 * @export
 */
export declare const CommandsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Without params, it returns a list of Saved Commands the user has access to
     * @summary Fetch a list of Saved Commands
     * @param {boolean} [all] Can only be used by admins or managers to fetch all entities
     * @param {number} [userId] Standard users can use this only with their own _userId_
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {number} [groupId] Standard users can use this only with _groupId_s, they have access to
     * @param {boolean} [refresh]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsGet(all?: boolean, userId?: number, deviceId?: number, groupId?: number, refresh?: boolean, options?: any): AxiosPromise<Array<Command>>;
    /**
     *
     * @summary Delete a Saved Command
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsIdDelete(id: number, options?: any): AxiosPromise<void>;
    /**
     *
     * @summary Update a Saved Command
     * @param {Command} body
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsIdPut(body: Command, id: number, options?: any): AxiosPromise<Command>;
    /**
     *
     * @summary Create a Saved Command
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsPost(body: Command, options?: any): AxiosPromise<Command>;
    /**
     * Return a list of saved commands linked to Device and its groups, filtered by current Device protocol support
     * @summary Fetch a list of Saved Commands supported by Device at the moment
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsSendGet(deviceId?: number, options?: any): AxiosPromise<Array<Command>>;
    /**
     * Dispatch a new command or Saved Command if _body.id_ set
     * @summary Dispatch commands to device
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsSendPost(body: Command, options?: any): AxiosPromise<Command>;
    /**
     *
     * @summary Fetch a list of available Commands for the Device or all possible Commands if Device ommited
     * @param {number} [deviceId] Internal device identifier. Only works if device has already reported some locations
     * @param {string} [protocol] Protocol name. Can be used instead of device id
     * @param {boolean} [textChannel] When &#x60;true&#x60; return SMS commands. If not specified or &#x60;false&#x60; return data commands
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    commandsTypesGet(deviceId?: number, protocol?: string, textChannel?: boolean, options?: any): AxiosPromise<Array<CommandType>>;
};
/**
 * CommandsApi - object-oriented interface
 * @export
 * @class CommandsApi
 * @extends {BaseAPI}
 */
export declare class CommandsApi extends BaseAPI {
    /**
     * Without params, it returns a list of Saved Commands the user has access to
     * @summary Fetch a list of Saved Commands
     * @param {boolean} [all] Can only be used by admins or managers to fetch all entities
     * @param {number} [userId] Standard users can use this only with their own _userId_
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {number} [groupId] Standard users can use this only with _groupId_s, they have access to
     * @param {boolean} [refresh]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommandsApi
     */
    commandsGet(all?: boolean, userId?: number, deviceId?: number, groupId?: number, refresh?: boolean, options?: any): Promise<import("axios").AxiosResponse<Command[]>>;
    /**
     *
     * @summary Delete a Saved Command
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommandsApi
     */
    commandsIdDelete(id: number, options?: any): Promise<import("axios").AxiosResponse<void>>;
    /**
     *
     * @summary Update a Saved Command
     * @param {Command} body
     * @param {number} id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommandsApi
     */
    commandsIdPut(body: Command, id: number, options?: any): Promise<import("axios").AxiosResponse<Command>>;
    /**
     *
     * @summary Create a Saved Command
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommandsApi
     */
    commandsPost(body: Command, options?: any): Promise<import("axios").AxiosResponse<Command>>;
    /**
     * Return a list of saved commands linked to Device and its groups, filtered by current Device protocol support
     * @summary Fetch a list of Saved Commands supported by Device at the moment
     * @param {number} [deviceId] Standard users can use this only with _deviceId_s, they have access to
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommandsApi
     */
    commandsSendGet(deviceId?: number, options?: any): Promise<import("axios").AxiosResponse<Command[]>>;
    /**
     * Dispatch a new command or Saved Command if _body.id_ set
     * @summary Dispatch commands to device
     * @param {Command} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommandsApi
     */
    commandsSendPost(body: Command, options?: any): Promise<import("axios").AxiosResponse<Command>>;
    /**
     *
     * @summary Fetch a list of available Commands for the Device or all possible Commands if Device ommited
     * @param {number} [deviceId] Internal device identifier. Only works if device has already reported some locations
     * @param {string} [protocol] Protocol name. Can be used instead of device id
     * @param {boolean} [textChannel] When &#x60;true&#x60; return SMS commands. If not specified or &#x60;false&#x60; return data commands
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CommandsApi
     */
    commandsTypesGet(deviceId?: number, protocol?: string, textChannel?: boolean, options?: any): Promise<import("axios").AxiosResponse<CommandType[]>>;
}
