import { ResourceAccess } from '@sage-bionetworks/synapse-types';
import { AccessControlList, ResourceAccess as SynapseClientResourceAccess } from '@sage-bionetworks/synapse-client';
/**
 * Compares two objects for equality, ignoring the order of elements in arrays.
 * @param a
 * @param b
 */
export declare function resourceAccessListIsEqual(a: ResourceAccess[], b: ResourceAccess[]): boolean;
/** Conversion utility to go from synapse-client ResourceAccess Set to the SRC SynapseClient ResourceAccess[] type */
export declare function convertResourceAccessSetToSRC(resourceAccessSet?: Set<SynapseClientResourceAccess>): ResourceAccess[];
/** Conversion utility to go from synapse-react-client ResourceAccess[] to the synapse-client ResourceAccess Set in an ACL */
export declare function updateACLWithSRCResourceAccessList(acl: AccessControlList | null | undefined, resourceAccessList: ResourceAccess[]): AccessControlList;
/**
 * Determines if an entity is publicly accessible by checking if any public principals
 * (authenticated users, public group, or anonymous user) have access in the resource access list.
 *
 * @param resourceAccess - The list of resource access entries to check
 * @param realmPrincipals - An object containing the principal IDs for public groups
 * @param realmPrincipals.authenticatedUsers - The principal ID for authenticated users
 * @param realmPrincipals.publicGroup - The principal ID for the public group
 * @param realmPrincipals.anonymousUser - The principal ID for anonymous users
 * @returns true if any public principal has access, false otherwise
 */
export declare function isEntityPublic(resourceAccess: ResourceAccess[], realmPrincipals: {
    authenticatedUsers?: string;
    publicGroup?: string;
    anonymousUser?: string;
}): boolean;
//# sourceMappingURL=AccessControlListUtils.d.ts.map