import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _GKTurnBasedParticipant } from "./GKTurnBasedParticipant.js";
import type { GKTurnBasedExchangeStatus } from "./GKTurnBasedExchangeStatus.js";
export declare class _GKTurnBasedExchange extends _NSObject {
    static alloc(): _GKTurnBasedExchange;
    static new(): _GKTurnBasedExchange;
    init(): _GKTurnBasedExchange;
    /**
     * cancel an exchange. It is possible to cancel an exchange that is active or complete. Each recipient will receive a push notification using supplied localizable message. Returns an error if the exchange has already been canceled.
     */
    cancelWithLocalizableMessageKey$arguments$completionHandler$(key: _NSString, arguments_: _NSArray, completionHandler: ((error: _NSError) => void) | null): void;
    /**
     * reply to an exchange. The sender will receive a push notification using supplied localizable message. Returns an error if the exchange has already been canceled.
     */
    replyWithLocalizableMessageKey$arguments$data$completionHandler$(key: _NSString, arguments_: _NSArray, data: _NSData, completionHandler: ((error: _NSError) => void) | null): void;
    /** persistent identifier used to refer to this exchange. */
    exchangeID(): _NSString | null;
    /** participant who sent the exchange */
    sender(): _GKTurnBasedParticipant | null;
    /** participants who are the recipients of the exchange */
    recipients(): _NSArray | null;
    /** status of the exchange */
    status(): GKTurnBasedExchangeStatus;
    /**
     * localized message for the push notification sent to all recipients of this exchange
     */
    message(): _NSString | null;
    /** data to send with the exchange. */
    data(): _NSData | null;
    /** send date for the exchange. */
    sendDate(): _NSDate | null;
    /** timeout date for the exchange. */
    timeoutDate(): _NSDate | null;
    /** date when this exchange completed */
    completionDate(): _NSDate | null;
    /** Array of GKTurnBasedExchangeReply. */
    replies(): _NSArray | null;
}
