import type { CaveatConstraint, CaveatSpecificationConstraint, CaveatSpecificationMap } from "./Caveat.cjs";
import type { PermissionConstraint, PermissionSpecificationConstraint, PermissionSpecificationMap } from "./Permission.cjs";
export declare enum MethodNames {
    RequestPermissions = "wallet_requestPermissions",
    GetPermissions = "wallet_getPermissions",
    RevokePermissions = "wallet_revokePermissions"
}
/**
 * Utility type for extracting a union of all individual caveat or permission
 * specification types from a {@link CaveatSpecificationMap} or
 * {@link PermissionSpecificationMap}.
 *
 * @template SpecificationsMap - The caveat or permission specifications map
 * whose specification type union to extract.
 */
export type ExtractSpecifications<SpecificationsMap extends CaveatSpecificationMap<CaveatSpecificationConstraint> | PermissionSpecificationMap<PermissionSpecificationConstraint>> = SpecificationsMap[keyof SpecificationsMap];
/**
 * Given two permission objects, computes 3 sets:
 * - The set of caveat pairs that are common to both permissions.
 * - The set of caveats that are unique to the existing permission.
 * - The set of caveats that are unique to the requested permission.
 *
 * Assumes that the caveat arrays of both permissions are valid.
 *
 * @param leftPermission - The left-hand permission.
 * @param rightPermission - The right-hand permission.
 * @returns The sets of caveat pairs and unique caveats.
 */
export declare function collectUniqueAndPairedCaveats(leftPermission: Partial<PermissionConstraint> | undefined, rightPermission: Partial<PermissionConstraint>): {
    caveatPairs: [CaveatConstraint, CaveatConstraint][];
    leftUniqueCaveats: CaveatConstraint[];
    rightUniqueCaveats: CaveatConstraint[];
};
//# sourceMappingURL=utils.d.cts.map