import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCoding } from "../Foundation/NSCoding.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSUUID } from "../Foundation/NSUUID.js";
import type { _CBGroupIdentity } from "./CBGroupIdentity.js";
import type { _CBIdentityAuthority } from "./CBIdentityAuthority.js";
import type { _NSImage } from "../AppKit/NSImage.js";
export declare class _CBIdentity extends _NSObject {
    static alloc(): _CBIdentity;
    static new(): _CBIdentity;
    init(): _CBIdentity;
    /**
     * Returns the identity object with the given name from the specified identity authority. The name is compared against all valid identity names, including full names, short names, email addresses, and aliases. - Parameters: - name: The name of the identity. - authority: The identity authority to search. - Returns: The identity object, or `nil` if no identity is found with the specified name.
     */
    static identityWithName$authority$(name: _NSString, authority: _CBIdentityAuthority): _CBIdentity | null;
    /**
     * Return the identity with the given UUID, from the specified authority, nil if not found.
     */
    static identityWithUniqueIdentifier$authority$(uuid: _NSUUID, authority: _CBIdentityAuthority): _CBIdentity | null;
    /**
     * Returns the identity object with the given UUID from the specified identity authority. - Parameters: - uuid: The UUID of the identity you are searching for. - authority: The identity authority to search. - Returns: The identity object, or `nil` if no identity is found with the matching criteria.
     * @deprecated
     */
    static identityWithUUIDString$authority$(uuid: _NSString, authority: _CBIdentityAuthority): _CBIdentity | null;
    /**
     * Returns the identity object matching the persistent reference data. A persistent reference is an opaque data object suitable for persistent storage. - Parameters: - data: The persistent data object that refers to an identity. - Returns: The identity object matching the persistent data object, or `nil` if the identity is not found.
     */
    static identityWithPersistentReference$(data: _NSData): _CBIdentity | null;
    /**
     * Returns an identity object created from the specified Core Services Identity opaque object. This method is used for interoperability with the Core Services Identity API. - Parameters: - csIdentity: The Core Services Identity opaque object. - Returns: The identity object for use with the Collaboration framework.
     */
    static identityWithCSIdentity$(csIdentity: NobjcObject): _CBIdentity;
    /**
     * Returns a Boolean value indicating whether the identity is a member of the specified group. - Parameters: - group: The group to check for membership. - Returns: <doc://com.apple.documentation/documentation/objectivec/yes> if the identity is a member of the group; <doc://com.apple.documentation/documentation/objectivec/no> if it is not.
     */
    isMemberOfGroup$(group: _CBGroupIdentity): boolean;
    /**
     * Returns the identity authority where the identity is stored. - Returns: The identity authority where the identity is stored.
     */
    authority(): _CBIdentityAuthority;
    /** The identity's UUID */
    uniqueIdentifier(): _NSUUID;
    /**
     * Returns the UUID of the identity as a string. The UUID string is generated so it is unique across all identity authorities. When storing ACLs, one method is to store the UUID of each identity. However, it is recommended that you use a persistent data object instead (see ``CBIdentity/persistentReference``). - Returns: The UUID string of the identity.
     * @deprecated
     */
    UUIDString(): _NSString;
    /**
     * Returns the full name of the identity. - Returns: The full name for the identity.
     */
    fullName(): _NSString;
    /**
     * Returns the POSIX name of the identity. The POSIX name is also referred to as the “short name” for an identity. It can only contain the characters A-Z, a-z, 0-9, -, _, ., and @. - Returns: The POSIX name of the identity.
     */
    posixName(): _NSString;
    /**
     * Returns an array of aliases (alternate names) for the identity. An identity can have zero or more aliases. Like the full and short names, two identities cannot share an alias. - Returns: An array of `NSString` objects containing the alternate names for the identity.
     */
    aliases(): _NSArray;
    /**
     * Returns the email address of an identity. - Returns: The email address of an identity or `nil` if none exists.
     */
    emailAddress(): _NSString | null;
    /**
     * Returns the image associated with an identity. - Returns: The image associated with an identity, or `nil` if none exists.
     */
    image(): _NSImage | null;
    /**
     * Returns a persistent reference to store a reference to an identity. A persistent reference data object is an object generated from an identity. Persistent data objects can be written to and read from a file, making them extremely useful for storing identities in an ACL. - Returns: A data object that uniquely references an identity.
     */
    persistentReference(): _NSData | null;
    /**
     * Returns a Boolean value indicating the state of the identity’s hidden property. A hidden identity does not show up in the Identity Picker. A hidden identity refers to system identities such as `root`, `www`, and `wheel`. - Returns: <doc://com.apple.documentation/documentation/objectivec/yes> if the identity is hidden; <doc://com.apple.documentation/documentation/objectivec/no> if it is not.
     */
    hidden(): boolean;
    /**
     * Returns an opaque object for use with the Core Services Identity API. This method, along with ``CBIdentity/identityWithCSIdentity:``, is used for interoperability with the Core Services Identity API. - Returns: The opaque object for use with the Core Services Identity API.
     */
    CSIdentity(): NobjcObject;
}
export interface _CBIdentity extends _NSCoding, _NSCopying {
}
