import { Player } from "../core/Player";
/**
 * Player events.
 *
 * You can use these events to listen for changes in the player state, or to trigger actions based on player events.
 */
export declare const PLAYER_EVENTS: {
    readonly CONNECTED: "player:connected";
    readonly DISCONNECTED: "player:disconnected";
    readonly RECONNECTED: "player:reconnected";
    readonly REMOVED: "player:removed";
    readonly STATE_UPDATED: "player:state:updated";
    readonly ATTRIBUTE_CHANGED: "player:attribute:changed";
    readonly ATTRIBUTES_CHANGED: "player:attributes:changed";
    readonly AUTHENTICATION_FAILED: "player:authentication:failed";
    readonly AUTHENTICATION_SUCCEEDED: "player:authentication:succeeded";
};
/**
 * These are the payload structures for native Player events.
 *
 * You can use these payloads to listen for changes in the player state, or to trigger actions based on player events.
 */
export interface DefaultPlayerEventPayloadMap {
    [PLAYER_EVENTS.CONNECTED]: [player: Player];
    [PLAYER_EVENTS.DISCONNECTED]: [player: Player];
    [PLAYER_EVENTS.RECONNECTED]: [player: Player];
    [PLAYER_EVENTS.REMOVED]: [player: Player];
    [PLAYER_EVENTS.STATE_UPDATED]: [player: Player];
    [PLAYER_EVENTS.ATTRIBUTE_CHANGED]: [player: Player, key: string, value: any];
    [PLAYER_EVENTS.ATTRIBUTES_CHANGED]: [player: Player, changedKeys: string[], attributes: Record<string, any>];
    [PLAYER_EVENTS.AUTHENTICATION_FAILED]: [player: Player, reason: string];
    [PLAYER_EVENTS.AUTHENTICATION_SUCCEEDED]: [player: Player];
}
