/**
 * AccessRules ver10 module
 * @author Andrew D.Laptev <a.d.laptev@gmail.com>
 * @see https://www.onvif.org/ver10/accessrules/wsdl/accessrules.wsdl
 */
import { Onvif } from './onvif';
import Service from './service';
import { Capabilities, CreateAccessProfile, CreateAccessProfileResponse, DeleteAccessProfile, GetAccessProfileInfo, GetAccessProfileInfoList, GetAccessProfileInfoListResponse, GetAccessProfileInfoResponse, GetAccessProfileList, GetAccessProfileListResponse, GetAccessProfiles, GetAccessProfilesResponse, ModifyAccessProfile, SetAccessProfile } from './interfaces/accessrules';
/**
 * AccessRules service
 * @example
 * ```ts
 *  const list = await cam.accessRules.getAccessProfileInfoList();
 *  const token = list.accessProfileInfo![0].token;
 *  console.log((await cam.accessRules.getAccessProfiles({ token: [token] })).accessProfile);
 * ```
 */
export default class AccessRules extends Service {
    constructor(onvif: Onvif);
    private static accessPolicyToBuild;
    private static accessProfileInfoToBuild;
    private static accessProfileToBuild;
    /**
     * Returns the capabilities of the access rules service.
     */
    getServiceCapabilities(): Promise<Capabilities>;
    /**
     * Returns access profile info items for the requested tokens.
     * @param options
     */
    getAccessProfileInfo({ token }: GetAccessProfileInfo): Promise<GetAccessProfileInfoResponse>;
    /**
     * Returns a list of access profile info items.
     * @param options
     */
    getAccessProfileInfoList(options?: GetAccessProfileInfoList): Promise<GetAccessProfileInfoListResponse>;
    /**
     * Returns access profile items for the requested tokens.
     * @param options
     */
    getAccessProfiles({ token }: GetAccessProfiles): Promise<GetAccessProfilesResponse>;
    /**
     * Returns a list of access profile items.
     * @param options
     */
    getAccessProfileList(options?: GetAccessProfileList): Promise<GetAccessProfileListResponse>;
    /**
     * Creates a new access profile.
     * @param options
     */
    createAccessProfile({ accessProfile }: CreateAccessProfile): Promise<CreateAccessProfileResponse['token']>;
    /**
     * Creates or replaces an access profile (requires ClientSuppliedTokenSupported).
     * @param options
     */
    setAccessProfile({ accessProfile }: SetAccessProfile): Promise<void>;
    /**
     * Modifies an existing access profile.
     * @param options
     */
    modifyAccessProfile({ accessProfile }: ModifyAccessProfile): Promise<void>;
    /**
     * Deletes an access profile.
     * @param options
     */
    deleteAccessProfile({ token }: DeleteAccessProfile): Promise<void>;
}
