import { IOcaJobQueueItem, OcaJobQueueItem, } from '../../types/OcaJobQueueItem.js'; import { OcaTaskSchedulerState } from '../../types/OcaTaskSchedulerState.js'; import { Event } from '../event.js'; import { PropertyEvent } from '../property_event.js'; import { RemoteDevice } from '../remote_device.js'; import { OcaAgent } from './OcaAgent.js'; /** * Optional scheduler for scheduling tasks to run programs and commandsets in * the future. * @extends OcaAgent * @class OcaTaskScheduler */ export declare class OcaTaskScheduler extends OcaAgent { /** * Event raised when a job queue item is removed from the queue, either * because it has fulfilled its purpose or because it has been explicitly * deleted by the **DeleteJob()** or **ClearJobQueue()** method. * @member OcaTaskScheduler#OnJobDisposed {Event} */ OnJobDisposed: Event; /** * This event is emitted whenever State changes. */ OnStateChanged: PropertyEvent; /** * This event is emitted whenever TaskAgents changes. */ OnTaskAgentsChanged: PropertyEvent; /** * This event is emitted whenever JobQueue changes. */ OnJobQueueChanged: PropertyEvent; constructor(objectNumber: number, device: RemoteDevice); /** * Changes state to **Running.** * * @method OcaTaskScheduler#ActionStart * @returns {Promise} */ ActionStart(): Promise; /** * Changes state to **Stopped.** * * @method OcaTaskScheduler#ActionStop * @returns {Promise} */ ActionStop(): Promise; /** * Changes state to **Paused.** * * @method OcaTaskScheduler#ActionPause * @returns {Promise} */ ActionPause(): Promise; /** * Changes state to **Draining.** * * @method OcaTaskScheduler#ActionDrain * @returns {Promise} */ ActionDrain(): Promise; /** * Gets the scheduler's state. * * @method OcaTaskScheduler#GetState * @returns {Promise} * A promise which resolves to a single value of type :class:`OcaTaskSchedulerState`. */ GetState(): Promise; /** * Gets the list of all **OcaTaskAgent** ONos. * * @method OcaTaskScheduler#GetTaskAgents * @returns {Promise} * A promise which resolves to a single value of type ``number[]``. */ GetTaskAgents(): Promise; /** * Gets the job queue. * * @method OcaTaskScheduler#GetJobQueue * @returns {Promise} * A promise which resolves to a single value of type :class:`OcaJobQueueItem[]`. */ GetJobQueue(): Promise; /** * Gets a jobqueue item, given its ID. * * @method OcaTaskScheduler#GetJob * @param {number} ID * * @returns {Promise} * A promise which resolves to a single value of type :class:`OcaJobQueueItem`. */ GetJob(ID: number): Promise; /** * Replaces a job queue item, given its ID. If given ID references a * nonexistent job queue item, method shall return status value * **ParameterOutOfRange**. * * @method OcaTaskScheduler#SetJob * @param {number} ID * @param {IOcaJobQueueItem} Item * * @returns {Promise} */ SetJob(ID: number, Item: IOcaJobQueueItem): Promise; /** * Adds a job queue item, returns its ID. * * @method OcaTaskScheduler#AddJob * @param {IOcaJobQueueItem} Item * * @returns {Promise} * A promise which resolves to a single value of type ``number``. */ AddJob(Item: IOcaJobQueueItem): Promise; /** * Deletes a job queue item given its ID. * * @method OcaTaskScheduler#DeleteJob * @param {number} ID * * @returns {Promise} */ DeleteJob(ID: number): Promise; /** * Deletes all job queue items. * * @method OcaTaskScheduler#ClearJobQueue * @returns {Promise} */ ClearJobQueue(): Promise; }