import { AuthManager } from '../auth/AuthManager';
import { CompliancePoliciesResponse, ComplianceCreateRequest, ComplianceCreateResponse, ComplianceUpdateResponse, DeleteMultipleRequest, ComplianceGroupListResponse, ComplianceGroupDetailsResponse, AssociateGroupsRequest } from './types';
export declare class ComplianceAPI {
    private readonly baseUrl;
    private readonly authManager;
    private readonly accountsServer;
    constructor(baseUrl: string, authManager: AuthManager, accountsServer: string);
    private getHeaders;
    /**
     * Get the list of all fence profiles available
     */
    listFenceProfiles(): Promise<CompliancePoliciesResponse>;
    /**
     * Add a new fence profile
     */
    addFenceProfile(request: ComplianceCreateRequest): Promise<ComplianceCreateResponse>;
    /**
     * Delete multiple fence profiles
     */
    deleteMultipleFenceProfiles(request: DeleteMultipleRequest): Promise<void>;
    /**
     * Get details of a specific fence profile
     */
    getFenceProfileDetails(complianceId: number): Promise<ComplianceCreateResponse>;
    /**
     * Modify a specific fence profile
     */
    modifyFenceProfile(complianceId: number, request: ComplianceCreateRequest): Promise<ComplianceUpdateResponse>;
    /**
     * Delete a specific fence profile
     */
    deleteFenceProfile(complianceId: number): Promise<void>;
    /**
     * Get the list of groups to which the Fence policy is associated
     */
    getFenceGroups(complianceId: number): Promise<ComplianceGroupListResponse>;
    /**
     * Associate Fence policy to multiple groups
     */
    associateMultipleGroups(complianceId: number, request: AssociateGroupsRequest): Promise<void>;
    /**
     * Disassociate Fence policy from multiple groups
     */
    disassociateMultipleGroups(complianceId: number): Promise<void>;
    /**
     * Get devices under a specific group for a Fence policy
     */
    getGroupDevices(complianceId: number, groupId: number): Promise<ComplianceGroupDetailsResponse>;
    /**
     * Associate Fence policy to a specific group
     */
    associateGroup(complianceId: number, groupId: number): Promise<void>;
    /**
     * Disassociate Fence policy from a specific group
     */
    disassociateGroup(complianceId: number, groupId: number): Promise<void>;
}
