import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _CNKeyDescriptor } from "./CNKeyDescriptor.js";
export declare class _CNContactVCardSerialization extends _NSObject {
    static alloc(): _CNContactVCardSerialization;
    static new(): _CNContactVCardSerialization;
    init(): _CNContactVCardSerialization;
    /**
     * @abstract Descriptor for all contact keys required by vCard serialization @discussion This descriptor must be passed to the fetch request if the returned contacts are to be serialized with dataWithContacts:error:.
     */
    static descriptorForRequiredKeys(): _CNKeyDescriptor;
    /**
     * @abstract Serialize contacts to data. @discussion The contacts to be serialized must have been fetched with @c +descriptorForRequiredKeys. @param contacts The contacts to serialize. @param error An optional outparameter. If the serialization fails, this will be set. @returns The encoded data. If the serialization fails, this will be @c nil.
     */
    static dataWithContacts$error$(contacts: _NSArray, error: NobjcObject | null): _NSData | null;
    /**
     * @abstract Parse data into contacts. @param data The data to parse. @param error An optional outparameter. If the parsing fails, this will be set. @returns The parsed contacts. If the parsing fails, this will be @c nil.
     */
    static contactsWithData$error$(data: _NSData, error: NobjcObject | null): _NSArray | null;
}
