/**
 * AuthenticationBehavior ver10 module
 * @author Andrew D.Laptev <a.d.laptev@gmail.com>
 * @see https://www.onvif.org/ver10/authenticationbehavior/wsdl
 */
import { Onvif, OnvifServices } from './onvif';
import Service from './service';
import { Capabilities, CreateAuthenticationProfile, CreateAuthenticationProfileResponse, CreateSecurityLevel, CreateSecurityLevelResponse, DeleteAuthenticationProfile, DeleteSecurityLevel, GetAuthenticationProfileInfo, GetAuthenticationProfileInfoList, GetAuthenticationProfileInfoListResponse, GetAuthenticationProfileInfoResponse, GetAuthenticationProfileList, GetAuthenticationProfileListResponse, GetAuthenticationProfiles, GetAuthenticationProfilesResponse, GetSecurityLevelInfo, GetSecurityLevelInfoList, GetSecurityLevelInfoListResponse, GetSecurityLevelInfoResponse, GetSecurityLevelList, GetSecurityLevelListResponse, GetSecurityLevels, GetSecurityLevelsResponse, ModifyAuthenticationProfile, ModifySecurityLevel, SetAuthenticationProfile, SetSecurityLevel } from './interfaces/authenticationbehavior';
/**
 * AuthenticationBehavior service
 * @example
 * ```ts
 * const profiles = await cam.authenticationBehavior.getAuthenticationProfileList();
 * const token = profiles.authenticationProfile![0].token;
 * const levels = await cam.authenticationBehavior.getSecurityLevelList();
 * ```
 */
export declare class AuthenticationBehavior extends Service {
    constructor(onvif: Onvif, service: keyof OnvifServices);
    private static tokensToBuild;
    private static oneOrMany;
    private static securityLevelConstraintToBuild;
    private static authenticationPolicyToBuild;
    private static recognitionMethodToBuild;
    private static recognitionGroupToBuild;
    private static authenticationProfileInfoToBuild;
    private static authenticationProfileToBuild;
    private static securityLevelInfoToBuild;
    private static securityLevelToBuild;
    /**
     * Returns the capabilities of the authentication behavior service.
     */
    getServiceCapabilities(): Promise<Capabilities>;
    /**
     * Returns authentication profile info items for the requested tokens.
     * @param options
     */
    getAuthenticationProfileInfo({ token, }: GetAuthenticationProfileInfo): Promise<GetAuthenticationProfileInfoResponse>;
    /**
     * Returns a list of authentication profile info items.
     * @param options
     */
    getAuthenticationProfileInfoList(options?: GetAuthenticationProfileInfoList): Promise<GetAuthenticationProfileInfoListResponse>;
    /**
     * Returns authentication profile items for the requested tokens.
     * @param options
     */
    getAuthenticationProfiles({ token, }: GetAuthenticationProfiles): Promise<GetAuthenticationProfilesResponse>;
    /**
     * Returns a list of authentication profile items.
     * @param options
     */
    getAuthenticationProfileList(options?: GetAuthenticationProfileList): Promise<GetAuthenticationProfileListResponse>;
    /**
     * Creates a new authentication profile.
     * @param options
     */
    createAuthenticationProfile({ authenticationProfile, }: CreateAuthenticationProfile): Promise<CreateAuthenticationProfileResponse['token']>;
    /**
     * Creates or replaces an authentication profile (requires ClientSuppliedTokenSupported).
     * @param options
     */
    setAuthenticationProfile({ authenticationProfile }: SetAuthenticationProfile): Promise<void>;
    /**
     * Modifies an existing authentication profile.
     * @param options
     */
    modifyAuthenticationProfile({ authenticationProfile }: ModifyAuthenticationProfile): Promise<void>;
    /**
     * Deletes an authentication profile.
     * @param options
     */
    deleteAuthenticationProfile({ token }: DeleteAuthenticationProfile): Promise<void>;
    /**
     * Returns security level info items for the requested tokens.
     * @param options
     */
    getSecurityLevelInfo({ token }: GetSecurityLevelInfo): Promise<GetSecurityLevelInfoResponse>;
    /**
     * Returns a list of security level info items.
     * @param options
     */
    getSecurityLevelInfoList(options?: GetSecurityLevelInfoList): Promise<GetSecurityLevelInfoListResponse>;
    /**
     * Returns security level items for the requested tokens.
     * @param options
     */
    getSecurityLevels({ token }: GetSecurityLevels): Promise<GetSecurityLevelsResponse>;
    /**
     * Returns a list of security level items.
     * @param options
     */
    getSecurityLevelList(options?: GetSecurityLevelList): Promise<GetSecurityLevelListResponse>;
    /**
     * Creates a new security level.
     * @param options
     */
    createSecurityLevel({ securityLevel }: CreateSecurityLevel): Promise<CreateSecurityLevelResponse['token']>;
    /**
     * Creates or replaces a security level (requires ClientSuppliedTokenSupported).
     * @param options
     */
    setSecurityLevel({ securityLevel }: SetSecurityLevel): Promise<void>;
    /**
     * Modifies an existing security level.
     * @param options
     */
    modifySecurityLevel({ securityLevel }: ModifySecurityLevel): Promise<void>;
    /**
     * Deletes a security level.
     * @param options
     */
    deleteSecurityLevel({ token }: DeleteSecurityLevel): Promise<void>;
}
