export { ACHIEVEMENT_DEFINITIONS, ACHIEVEMENT_IDS } from '@playcademy/constants';
import { ItemRow } from '@playcademy/data/types';

/**
 * Demo user data for sandbox testing
 */
declare const DEMO_USER_IDS: {
    readonly player: '00000000-0000-0000-0000-000000000001';
    readonly developer: '00000000-0000-0000-0000-000000000002';
    readonly admin: '00000000-0000-0000-0000-000000000003';
    readonly pendingDeveloper: '00000000-0000-0000-0000-000000000004';
    readonly unverifiedPlayer: '00000000-0000-0000-0000-000000000005';
    readonly anonymousPlayer: '00000000-0000-0000-0000-000000000006';
};
declare const DEMO_USERS: {
    readonly admin: {
        readonly id: "00000000-0000-0000-0000-000000000003";
        readonly name: 'Admin User';
        readonly username: 'admin_user';
        readonly email: 'admin@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'admin';
        readonly developerStatus: 'approved';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly player: {
        readonly id: "00000000-0000-0000-0000-000000000001";
        readonly name: 'Player User';
        readonly username: 'player_user';
        readonly email: 'player@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly developer: {
        readonly id: "00000000-0000-0000-0000-000000000002";
        readonly name: 'Developer User';
        readonly username: 'developer_user';
        readonly email: 'developer@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'developer';
        readonly developerStatus: 'approved';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly pendingDeveloper: {
        readonly id: "00000000-0000-0000-0000-000000000004";
        readonly name: 'Pending Developer';
        readonly username: 'pending_dev';
        readonly email: 'pending@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'developer';
        readonly developerStatus: 'pending';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly unverifiedPlayer: {
        readonly id: "00000000-0000-0000-0000-000000000005";
        readonly name: 'Unverified Player';
        readonly username: 'unverified_player';
        readonly email: 'unverified@playcademy.com';
        readonly emailVerified: false;
        readonly image: null;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly anonymousPlayer: {
        readonly id: "00000000-0000-0000-0000-000000000006";
        readonly name: "Demo Player";
        readonly username: 'anonymous_demo_player';
        readonly email: 'player@anon.demo.playcademy.gg';
        readonly emailVerified: false;
        readonly image: null;
        readonly isAnonymous: true;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
};
declare const DEMO_USER: {
    readonly id: "00000000-0000-0000-0000-000000000001";
    readonly name: 'Player User';
    readonly username: 'player_user';
    readonly email: 'player@playcademy.com';
    readonly emailVerified: true;
    readonly image: null;
    readonly role: 'player';
    readonly developerStatus: 'none';
    readonly createdAt: Date;
    readonly updatedAt: Date;
};

/**
 * Demo token mappings for sandbox authentication
 */
/** Token string → User mapping (used by auth middleware) */
declare const DEMO_TOKENS: {
    readonly 'sandbox-demo-token': {
        readonly id: "00000000-0000-0000-0000-000000000001";
        readonly name: 'Player User';
        readonly username: 'player_user';
        readonly email: 'player@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'sandbox-admin-token': {
        readonly id: "00000000-0000-0000-0000-000000000003";
        readonly name: 'Admin User';
        readonly username: 'admin_user';
        readonly email: 'admin@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'admin';
        readonly developerStatus: 'approved';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'sandbox-player-token': {
        readonly id: "00000000-0000-0000-0000-000000000001";
        readonly name: 'Player User';
        readonly username: 'player_user';
        readonly email: 'player@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'sandbox-anonymous-token': {
        readonly id: "00000000-0000-0000-0000-000000000006";
        readonly name: "Demo Player";
        readonly username: 'anonymous_demo_player';
        readonly email: 'player@anon.demo.playcademy.gg';
        readonly emailVerified: false;
        readonly image: null;
        readonly isAnonymous: true;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'sandbox-developer-token': {
        readonly id: "00000000-0000-0000-0000-000000000002";
        readonly name: 'Developer User';
        readonly username: 'developer_user';
        readonly email: 'developer@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'developer';
        readonly developerStatus: 'approved';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'sandbox-pending-dev-token': {
        readonly id: "00000000-0000-0000-0000-000000000004";
        readonly name: 'Pending Developer';
        readonly username: 'pending_dev';
        readonly email: 'pending@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'developer';
        readonly developerStatus: 'pending';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'sandbox-unverified-token': {
        readonly id: "00000000-0000-0000-0000-000000000005";
        readonly name: 'Unverified Player';
        readonly username: 'unverified_player';
        readonly email: 'unverified@playcademy.com';
        readonly emailVerified: false;
        readonly image: null;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'mock-game-token-for-local-dev': {
        readonly id: "00000000-0000-0000-0000-000000000001";
        readonly name: 'Player User';
        readonly username: 'player_user';
        readonly email: 'player@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'player';
        readonly developerStatus: 'none';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
    readonly 'sandbox-game-backend-token': {
        readonly id: "00000000-0000-0000-0000-000000000002";
        readonly name: 'Developer User';
        readonly username: 'developer_user';
        readonly email: 'developer@playcademy.com';
        readonly emailVerified: true;
        readonly image: null;
        readonly role: 'developer';
        readonly developerStatus: 'approved';
        readonly createdAt: Date;
        readonly updatedAt: Date;
    };
};
/** Well-known token strings by role (for use in tests) */
declare const SANDBOX_TOKENS: {
    readonly player: 'sandbox-player-token';
    readonly anonymous: 'sandbox-anonymous-token';
    readonly developer: 'sandbox-developer-token';
    readonly admin: 'sandbox-admin-token';
    readonly pendingDeveloper: 'sandbox-pending-dev-token';
    readonly unverified: 'sandbox-unverified-token';
};
declare const DEMO_TOKEN = "sandbox-demo-token";
declare const MOCK_GAME_ID = "mock-game-id-from-template";

/**
 * Demo items and inventory data for sandbox testing
 */

declare const PLAYCADEMY_CREDITS_ID: string;
declare const SAMPLE_ITEMS: Omit<ItemRow, 'createdAt'>[];
declare const SAMPLE_INVENTORY: {
    id: string;
    userId: "00000000-0000-0000-0000-000000000001";
    itemId: string;
    quantity: number;
}[];

export { DEMO_TOKEN, DEMO_TOKENS, DEMO_USER, DEMO_USERS, DEMO_USER_IDS, MOCK_GAME_ID, PLAYCADEMY_CREDITS_ID, SAMPLE_INVENTORY, SAMPLE_ITEMS, SANDBOX_TOKENS };
