import type { _NSAttributedString } from "../Foundation/NSAttributedString.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSFormatter } from "../Foundation/NSFormatter.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _CNContact } from "./CNContact.js";
import type { _CNKeyDescriptor } from "./CNKeyDescriptor.js";
import type { CNContactDisplayNameOrder } from "./CNContactDisplayNameOrder.js";
import type { CNContactFormatterStyle } from "./CNContactFormatterStyle.js";
export declare class _CNContactFormatter extends _NSFormatter {
    static alloc(): _CNContactFormatter;
    static new(): _CNContactFormatter;
    init(): _CNContactFormatter;
    /**
     * The contact key descriptor required for the formatter. Use to fetch all contact keys required for the formatter style. Can combine key descriptors for different formatter styles in the fetch. The formatting style to be used for the contact name. The contact key descriptor for the formatting style.
     */
    static descriptorForRequiredKeysForStyle$(style: CNContactFormatterStyle): _CNKeyDescriptor;
    /**
     * Formats the contact name. The contact whose name is to be formatted. The formatting style to be used for the contact name. The formatted contact name.
     */
    static stringFromContact$style$(contact: _CNContact, style: CNContactFormatterStyle): _NSString | null;
    /**
     * Formats the contact name returning an attributed string. This behaves like +stringFromContact:style: except it returns an attributed string. Includes the attribute key CNContactPropertyAttribute. The contact whose name is to be formatted. The formatting style to be used for the contact name. The default attributes to use. See NSFormatter for details. The formatted contact name as an attributed string.
     */
    static attributedStringFromContact$style$defaultAttributes$(contact: _CNContact, style: CNContactFormatterStyle, attributes: _NSDictionary | null): _NSAttributedString | null;
    /** The recommended name order for a given contact. */
    static nameOrderForContact$(contact: _CNContact): CNContactDisplayNameOrder;
    /** The recommended delimiter to use between name components for a given contact. */
    static delimiterForContact$(contact: _CNContact): _NSString;
    /**
     * The contact key descriptor required for the name order. Use to fetch all contact keys required for +nameOrderForContact:. Can combine key descriptors for different formatter styles in the fetch. The contact key descriptor for the name order.
     */
    static descriptorForRequiredKeysForNameOrder(): _CNKeyDescriptor;
    /**
     * The contact key descriptor required for the name delimiter. Use to fetch all contact keys required for +delimiterForContact:. Can combine key descriptors for different formatter styles in the fetch. The contact key descriptor for the name delimiter.
     */
    static descriptorForRequiredKeysForDelimiter(): _CNKeyDescriptor;
    /**
     * Formats the contact name. The contact whose name is to be formatted. The formatted contact name.
     */
    stringFromContact$(contact: _CNContact): _NSString | null;
    /**
     * Formats the contact name returning an attributed string. This behaves like -stringFromContact:style: except it returns an attributed string. CNContactPropertyAttribute key has the value of a CNContact name property key. The contact whose name is to be formatted. The default attributes to use. See NSFormatter for details. The formatted contact name as an attributed string.
     */
    attributedStringFromContact$defaultAttributes$(contact: _CNContact, attributes: _NSDictionary | null): _NSAttributedString | null;
    /**
     * The style for a contact formatter instance. The default value is CNContactFormatterStyleFullName.
     */
    style(): CNContactFormatterStyle;
    setStyle$(value: CNContactFormatterStyle): void;
}
