import type { _GKMatch } from "./GKMatch.js";
import type { _GKPlayer } from "./GKPlayer.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { GKPlayerConnectionState } from "./GKPlayerConnectionState.js";
export interface _GKMatchDelegate {
    /** The match received data sent from the player. */
    match$didReceiveData$fromRemotePlayer$?(match: _GKMatch, data: _NSData, player: _GKPlayer): void;
    match$didReceiveData$forRecipient$fromRemotePlayer$?(match: _GKMatch, data: _NSData, recipient: _GKPlayer, player: _GKPlayer): void;
    /** The player state changed (eg. connected or disconnected) */
    match$player$didChangeConnectionState$?(match: _GKMatch, player: _GKPlayer, state: GKPlayerConnectionState): void;
    /** The match was unable to be established with any players due to an error. */
    match$didFailWithError$?(match: _GKMatch, error: _NSError | null): void;
    /**
     * This method is called when the match is interrupted; if it returns YES, a new invite will be sent to attempt reconnection. This is supported only for 1v1 games
     * @deprecated Use ``GKMatchDelegate/match(_:didReceive:fromRemotePlayer:)`` instead.
     */
    match$shouldReinviteDisconnectedPlayer$?(match: _GKMatch, player: _GKPlayer): boolean;
    /**
     * These protocol methods are obsoleted. They will never be invoked and their implementation does nothing**
     * @deprecated Use ``GKMatchDelegate/match(_:didReceive:fromRemotePlayer:)`` instead.
     */
    match$didReceiveData$fromPlayer$?(match: _GKMatch, data: _NSData, playerID: _NSString): void;
    /** @deprecated Use ``GKMatchDelegate/match(_:player:didChange:)-8ohgr`` instead. */
    match$player$didChangeState$?(match: _GKMatch, playerID: _NSString, state: GKPlayerConnectionState): void;
    /**
     * @deprecated Use ``GKMatchDelegate/match(_:shouldReinviteDisconnectedPlayer:)`` instead.
     */
    match$shouldReinvitePlayer$?(match: _GKMatch, playerID: _NSString): boolean;
}
