/**
 * Analytics Device ver10 module
 * @author Andrew D.Laptev <a.d.laptev@gmail.com>
 * @see https://www.onvif.org/ver10/analyticsDevice/wsdl
 */
import { Onvif } from './onvif';
import Service from './service';
import { AnyURI } from './interfaces/basics';
import { AnalyticsEngine, AnalyticsEngineControl, AnalyticsEngineInput, AnalyticsStateInformation, VideoAnalyticsConfiguration } from './interfaces/onvif';
import { Capabilities, CreateAnalyticsEngineControl, CreateAnalyticsEngineInputs, DeleteAnalyticsEngineControl, DeleteAnalyticsEngineInputs, GetAnalyticsDeviceStreamUri, GetAnalyticsEngine, GetAnalyticsEngineControl, GetAnalyticsEngineInput, GetAnalyticsState, GetVideoAnalyticsConfiguration, SetAnalyticsEngineControl, SetAnalyticsEngineInput, SetVideoAnalyticsConfiguration } from './interfaces/analyticsdevice';
/**
 * Analytics Device service
 */
export default class AnalyticsDevice extends Service {
    constructor(onvif: Onvif);
    private static tokensToBuild;
    private static configurationEntityToBuild;
    private static sourceIdentificationToBuild;
    private static videoEncoderConfigurationToBuild;
    private static metadataInputToBuild;
    private static analyticsEngineInputToBuild;
    private static videoAnalyticsConfigurationToBuild;
    private static analyticsEngineInputInfoToBuild;
    private static engineConfigurationToBuild;
    private static analyticsEngineConfigurationToBuild;
    private static analyticsEngineToBuild;
    private static analyticsEngineControlToBuild;
    /**
     * Returns the capabilities of the analytics device service.
     */
    getServiceCapabilities(): Promise<Capabilities>;
    /**
     * Deletes an analytics engine control configuration.
     * @param options
     */
    deleteAnalyticsEngineControl({ configurationToken }: DeleteAnalyticsEngineControl): Promise<void>;
    /**
     * Creates analytics engine input configurations.
     * @param options
     */
    createAnalyticsEngineInputs({ configuration, forcePersistence, }: CreateAnalyticsEngineInputs): Promise<AnalyticsEngineInput[]>;
    /**
     * Creates an analytics engine control configuration.
     * @param options
     */
    createAnalyticsEngineControl({ configuration }: CreateAnalyticsEngineControl): Promise<AnalyticsEngineInput[]>;
    /**
     * Modifies an analytics engine control configuration.
     * @param options
     */
    setAnalyticsEngineControl({ configuration, forcePersistence }: SetAnalyticsEngineControl): Promise<void>;
    /**
     * Returns an analytics engine control configuration.
     * @param options
     */
    getAnalyticsEngineControl({ configurationToken }: GetAnalyticsEngineControl): Promise<AnalyticsEngineControl>;
    /**
     * Returns all analytics engine control configurations.
     */
    getAnalyticsEngineControls(): Promise<AnalyticsEngineControl[]>;
    /**
     * Returns an analytics engine configuration.
     * @param options
     */
    getAnalyticsEngine({ configurationToken }: GetAnalyticsEngine): Promise<AnalyticsEngine>;
    /**
     * Returns all analytics engine configurations.
     */
    getAnalyticsEngines(): Promise<AnalyticsEngine[]>;
    /**
     * Modifies a video analytics configuration.
     * @param options
     */
    setVideoAnalyticsConfiguration({ configuration, forcePersistence, }: SetVideoAnalyticsConfiguration): Promise<void>;
    /**
     * Modifies an analytics engine input configuration.
     * @param options
     */
    setAnalyticsEngineInput({ configuration, forcePersistence }: SetAnalyticsEngineInput): Promise<void>;
    /**
     * Returns an analytics engine input configuration.
     * @param options
     */
    getAnalyticsEngineInput({ configurationToken }: GetAnalyticsEngineInput): Promise<AnalyticsEngineInput>;
    /**
     * Returns all analytics engine input configurations.
     */
    getAnalyticsEngineInputs(): Promise<AnalyticsEngineInput[]>;
    /**
     * Requests a URI for an analytics device stream.
     * @param options
     */
    getAnalyticsDeviceStreamUri({ streamSetup, analyticsEngineControlToken, }: GetAnalyticsDeviceStreamUri): Promise<AnyURI>;
    /**
     * Returns a video analytics configuration.
     * @param options
     */
    getVideoAnalyticsConfiguration({ configurationToken, }: GetVideoAnalyticsConfiguration): Promise<VideoAnalyticsConfiguration>;
    /**
     * Deletes analytics engine input configurations.
     * @param options
     */
    deleteAnalyticsEngineInputs({ configurationToken }: DeleteAnalyticsEngineInputs): Promise<void>;
    /**
     * Returns the state of an analytics engine control.
     * @param options
     */
    getAnalyticsState({ analyticsEngineControlToken }: GetAnalyticsState): Promise<AnalyticsStateInformation>;
}
