import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDateComponents } from "../Foundation/NSDateComponents.js";
import type { _NSItemProviderReading } from "../Foundation/NSItemProviderReading.js";
import type { _NSItemProviderWriting } from "../Foundation/NSItemProviderWriting.js";
import type { _NSMutableCopying } from "../Foundation/NSMutableCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSPredicate } from "../Foundation/NSPredicate.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _CNKeyDescriptor } from "./CNKeyDescriptor.js";
import type { _CNPhoneNumber } from "./CNPhoneNumber.js";
import type { CNContactSortOrder } from "./CNContactSortOrder.js";
import type { CNContactType } from "./CNContactType.js";
export declare class _CNContact extends _NSObject {
    static alloc(): _CNContact;
    static new(): _CNContact;
    init(): _CNContact;
    /** Returns a user displayable property name. */
    static localizedStringForKey$(key: _NSString): _NSString;
    /** The contact comparator for a given sort order. */
    static comparatorForNameSortOrder$(sortOrder: CNContactSortOrder): (arg0: NobjcObject, arg1: NobjcObject) => number;
    /** Use to fetch all contact keys required for the contact sort comparator. */
    static descriptorForAllComparatorKeys(): _CNKeyDescriptor;
    /** To fetch contacts matching a name. The name can contain any number of words. */
    static predicateForContactsMatchingName$(name: _NSString): _NSPredicate;
    /**
     * Fetch contacts matching an email address. Use this predicate to find the contact(s) which contain the specified email address. The search is not case-sensitive. The email address to search for. Do not include a scheme (e.g., "mailto:").
     */
    static predicateForContactsMatchingEmailAddress$(emailAddress: _NSString): _NSPredicate;
    /**
     * Fetch contacts matching a phone number. If the predicate and contact differ in their use or presence of country codes, a best effort will be made to match results; however, inexact matches are not guaranteed. A representing the phone number to search for. Do not include a scheme (e.g., "tel:").
     */
    static predicateForContactsMatchingPhoneNumber$(phoneNumber: _CNPhoneNumber): _NSPredicate;
    /** To fetch contacts matching contact identifiers. */
    static predicateForContactsWithIdentifiers$(identifiers: _NSArray): _NSPredicate;
    static predicateForContactsInGroupWithIdentifier$(groupIdentifier: _NSString): _NSPredicate;
    static predicateForContactsInContainerWithIdentifier$(containerIdentifier: _NSString): _NSPredicate;
    /** Returns YES if the value for the specified key was fetched. */
    isKeyAvailable$(key: _NSString): boolean;
    /**
     * Returns YES if the values for the keys specified by all the descriptors were fetched.
     */
    areKeysAvailable$(keyDescriptors: _NSArray): boolean;
    /**
     * Returns YES if the receiver was fetched as a unified contact and includes the contact having contactIdentifier in its unification
     */
    isUnifiedWithContactWithIdentifier$(contactIdentifier: _NSString): boolean;
    /**
     * The identifier is unique among contacts on the device. It can be saved and used for fetching contacts next application launch.
     */
    identifier(): _NSString;
    contactType(): CNContactType;
    namePrefix(): _NSString;
    givenName(): _NSString;
    middleName(): _NSString;
    familyName(): _NSString;
    previousFamilyName(): _NSString;
    nameSuffix(): _NSString;
    nickname(): _NSString;
    organizationName(): _NSString;
    departmentName(): _NSString;
    jobTitle(): _NSString;
    phoneticGivenName(): _NSString;
    phoneticMiddleName(): _NSString;
    phoneticFamilyName(): _NSString;
    phoneticOrganizationName(): _NSString;
    note(): _NSString;
    imageData(): _NSData | null;
    thumbnailImageData(): _NSData | null;
    imageDataAvailable(): boolean;
    phoneNumbers(): _NSArray;
    emailAddresses(): _NSArray;
    postalAddresses(): _NSArray;
    urlAddresses(): _NSArray;
    contactRelations(): _NSArray;
    socialProfiles(): _NSArray;
    instantMessageAddresses(): _NSArray;
    /** The Gregorian birthday. */
    birthday(): _NSDateComponents | null;
    /** The alternate birthday (Lunisolar). */
    nonGregorianBirthday(): _NSDateComponents | null;
    /** Other Gregorian dates (anniversaries, etc). */
    dates(): _NSArray;
}
export interface _CNContact extends _NSCopying, _NSMutableCopying, _NSSecureCoding, _NSItemProviderReading, _NSItemProviderWriting {
}
