import type { NobjcObject } from "objc-js";
import type { _NSAttributedString } from "./NSAttributedString.js";
import type { _NSFormatter } from "./NSFormatter.js";
import type { _NSLocale } from "./NSLocale.js";
import type { _NSPersonNameComponents } from "./NSPersonNameComponents.js";
import type { _NSString } from "./NSString.js";
import type { NSPersonNameComponentsFormatterOptions } from "./NSPersonNameComponentsFormatterOptions.js";
import type { NSPersonNameComponentsFormatterStyle } from "./NSPersonNameComponentsFormatterStyle.js";
export declare class _NSPersonNameComponentsFormatter extends _NSFormatter {
    static alloc(): _NSPersonNameComponentsFormatter;
    static new(): _NSPersonNameComponentsFormatter;
    init(): _NSPersonNameComponentsFormatter;
    /**
     * Shortcut for converting an NSPersonNameComponents object into a string without explicitly creating an instance. Create an instance for greater customizability.
     */
    static localizedStringFromPersonNameComponents$style$options$(components: _NSPersonNameComponents, nameFormatStyle: NSPersonNameComponentsFormatterStyle, nameOptions: NSPersonNameComponentsFormatterOptions): _NSString;
    /**
     * Convenience method on stringForObjectValue:. Returns a string containing the formatted value of the provided components object.
     */
    stringFromPersonNameComponents$(components: _NSPersonNameComponents): _NSString;
    /**
     * Returns attributed string with annotations for each component. For each range, attributes can be obtained by querying dictionary key NSPersonNameComponentKey , using NSPersonNameComponent constant values.
     */
    annotatedStringFromPersonNameComponents$(components: _NSPersonNameComponents): _NSAttributedString;
    /**
     * Convenience method on getObjectValue:forString:error:. Returns an NSPersonNameComponents object representing the name components found in the provided string.
     */
    personNameComponentsFromString$(string_: _NSString): _NSPersonNameComponents | null;
    getObjectValue$forString$errorDescription$(obj: NobjcObject | null, string_: _NSString, error: NobjcObject | null): boolean;
    /**
     * Specify the formatting style for the formatted string on an instance. ShortStyle will fall back to user preferences and language-specific defaults
     */
    style(): NSPersonNameComponentsFormatterStyle;
    setStyle$(value: NSPersonNameComponentsFormatterStyle): void;
    /**
     * Specify that the formatter should only format the components object's phoneticRepresentation
     */
    phonetic(): boolean;
    setPhonetic$(value: boolean): void;
    /**
     * Specifies the locale to format names. Defaults to autoupdatingCurrentLocale. Also resets to autoupdatingCurrentLocale on assignment of nil.
     */
    locale(): _NSLocale;
    setLocale$(value: _NSLocale): void;
}
