/**
 * Analytics ver20 module
 * @author Andrew D.Laptev <a.d.laptev@gmail.com>
 * @see https://www.onvif.org/ver20/analytics/wsdl/analytics.wsdl
 */
import { Onvif } from './onvif';
import Service from './service';
import { Config, SupportedAnalyticsModules, SupportedRules } from './interfaces/onvif';
import { Capabilities, ConfigOptions, CreateAnalyticsModules, CreateRules, DeleteAnalyticsModules, DeleteRules, GetAnalyticsModuleOptions, GetAnalyticsModules, GetRuleOptions, GetRules, GetSupportedAnalyticsModules, GetSupportedMetadata, GetSupportedRules, MetadataInfo, ModifyAnalyticsModules, ModifyRules } from './interfaces/analytics.2';
/**
 * Analytics service
 */
export default class Analytics extends Service {
    constructor(onvif: Onvif);
    private static configsToBuild;
    private static namesToBuild;
    /**
     * Returns the capabilities of the analytics service.
     */
    getServiceCapabilities(): Promise<Capabilities>;
    /**
     * Returns the types of rules supported by the device for a video analytics configuration.
     * @param options
     */
    getSupportedRules({ configurationToken }: GetSupportedRules): Promise<SupportedRules>;
    /**
     * Creates one or more rules on a video analytics configuration.
     * @param options
     */
    createRules({ configurationToken, rule }: CreateRules): Promise<void>;
    /**
     * Deletes rules from a video analytics configuration.
     * @param options
     */
    deleteRules({ configurationToken, ruleName }: DeleteRules): Promise<void>;
    /**
     * Modifies rules on a video analytics configuration.
     * @param options
     */
    modifyRules({ configurationToken, rule }: ModifyRules): Promise<void>;
    /**
     * Returns the rules configured on a video analytics configuration.
     * @param options
     */
    getRules({ configurationToken }: GetRules): Promise<Config[]>;
    /**
     * Returns options for a supported rule type.
     * @param options
     */
    getRuleOptions({ configurationToken, ruleType }: GetRuleOptions): Promise<ConfigOptions[]>;
    /**
     * Returns the types of analytics modules supported by the device.
     * @param options
     */
    getSupportedAnalyticsModules({ configurationToken, }: GetSupportedAnalyticsModules): Promise<SupportedAnalyticsModules>;
    /**
     * Creates analytics modules on a video analytics configuration.
     * @param options
     */
    createAnalyticsModules({ configurationToken, analyticsModule }: CreateAnalyticsModules): Promise<void>;
    /**
     * Deletes analytics modules from a video analytics configuration.
     * @param options
     */
    deleteAnalyticsModules({ configurationToken, analyticsModuleName }: DeleteAnalyticsModules): Promise<void>;
    /**
     * Returns analytics modules configured on a video analytics configuration.
     * @param options
     */
    getAnalyticsModules({ configurationToken }: GetAnalyticsModules): Promise<Config[]>;
    /**
     * Modifies analytics modules on a video analytics configuration.
     * @param options
     */
    modifyAnalyticsModules({ configurationToken, analyticsModule }: ModifyAnalyticsModules): Promise<void>;
    /**
     * Returns options for a supported analytics module type.
     * @param options
     */
    getAnalyticsModuleOptions({ configurationToken, type }: GetAnalyticsModuleOptions): Promise<ConfigOptions[]>;
    /**
     * Returns sample metadata produced by analytics modules.
     * @param options
     */
    getSupportedMetadata(options?: GetSupportedMetadata): Promise<MetadataInfo[]>;
}
