import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _CKUserIdentity } from "./CKUserIdentity.js";
import type { CKShareParticipantAcceptanceStatus } from "./CKShareParticipantAcceptanceStatus.js";
import type { CKShareParticipantPermission } from "./CKShareParticipantPermission.js";
import type { CKShareParticipantRole } from "./CKShareParticipantRole.js";
import type { CKShareParticipantType } from "./CKShareParticipantType.js";
export declare class _CKShareParticipant extends _NSObject {
    static alloc(): _CKShareParticipant;
    static new(): _CKShareParticipant;
    init(): _CKShareParticipant;
    /**
     * Generate a unique URL for inviting a participant without knowing their handle When a participant's email address / phone number / userRecordID isn't known up-front, a ``CKShareParticipant/oneTimeURLParticipant`` can be added to the share. Once the share is saved, a custom invitation link or one-time URL is available for the added participant via ``CKShare/oneTimeURLForParticipantID:``. This custom link can be used by any recipient user to fetch share metadata and accept the share. Note that a one-time URL participant in the ``ParticipantAcceptanceStatus/pending`` state has empty ``CKUserIdentity/nameComponents`` and a nil ``CKUserIdentity/lookupInfo``.
     */
    static oneTimeURLParticipant(): _CKShareParticipant;
    userIdentity(): _CKUserIdentity;
    /** The default participant role is @c CKShareParticipantRolePrivateUser. */
    role(): CKShareParticipantRole;
    setRole$(value: CKShareParticipantRole): void;
    /**
     * The default participant type is ``CloudKit/CKShareParticipantType/CKShareParticipantTypePrivateUser``.
     */
    type(): CKShareParticipantType;
    setType$(value: CKShareParticipantType): void;
    acceptanceStatus(): CKShareParticipantAcceptanceStatus;
    /**
     * The default permission for a new participant is @c CKShareParticipantPermissionReadOnly.
     */
    permission(): CKShareParticipantPermission;
    setPermission$(value: CKShareParticipantPermission): void;
    /** A unique identifier for this participant. */
    participantID(): _NSString;
    /**
     * Indicates whether the participant was originally a requester who was approved to join the share.
     */
    isApprovedRequester(): boolean;
    /**
     * The date and time when the participant was added to the share. This timestamp is set when the share is successfully saved to the server.
     */
    dateAddedToShare(): _NSDate | null;
}
export interface _CKShareParticipant extends _NSSecureCoding, _NSCopying {
}
