import { z } from 'zod';
export declare const sessionStatusSchema: z.ZodEnum<{
    readonly REGISTRATION: "REGISTRATION";
    readonly TURN_CREATION: "TURN_CREATION";
    readonly READY: "READY";
    readonly STARTED: "STARTED";
    readonly FINISHED: "FINISHED";
    readonly CANCELLED: "CANCELLED";
}>;
export declare const sessionTicketSchema: z.ZodObject<{
    quantity: z.ZodNumber;
    type: z.ZodEnum<{
        readonly Race: "Race";
        readonly Battle: "Battle";
    }>;
}, z.core.$strip>;
export declare const gameSessionSchema: z.ZodObject<{
    id: z.ZodUUID;
    code: z.ZodString;
    contactPhone: z.ZodOptional<z.ZodString>;
    userId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodUUID;
        purchaseId: z.ZodString;
        sessionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
        gameTurnId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
        playerId: z.ZodNullable<z.ZodOptional<z.ZodUUID>>;
        status: z.ZodEnum<{
            readonly CREATED: "created";
            readonly ASSIGNED: "assigned";
            readonly ACTIVE: "active";
            readonly COMPLETED: "completed";
        }>;
        type: z.ZodDefault<z.ZodEnum<{
            readonly RACE: "race";
            readonly BATTLE: "battle";
            readonly SOCCER: "soccer";
        }>>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
        completedAt: z.ZodOptional<z.ZodDate>;
    }, z.core.$strip>>>;
    playerIds: z.ZodArray<z.ZodUUID>;
    linkedPurchaseId: z.ZodOptional<z.ZodString>;
    status: z.ZodDefault<z.ZodEnum<{
        readonly REGISTRATION: "REGISTRATION";
        readonly TURN_CREATION: "TURN_CREATION";
        readonly READY: "READY";
        readonly STARTED: "STARTED";
        readonly FINISHED: "FINISHED";
        readonly CANCELLED: "CANCELLED";
    }>>;
    createdAt: z.ZodDate;
    updatedAt: z.ZodDate;
}, z.core.$strip>;
export declare const gameSessionWithPlayersSchema: z.ZodObject<{
    id: z.ZodUUID;
    code: z.ZodString;
    contactPhone: z.ZodOptional<z.ZodString>;
    userId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodUUID;
        purchaseId: z.ZodString;
        sessionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
        gameTurnId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
        playerId: z.ZodNullable<z.ZodOptional<z.ZodUUID>>;
        status: z.ZodEnum<{
            readonly CREATED: "created";
            readonly ASSIGNED: "assigned";
            readonly ACTIVE: "active";
            readonly COMPLETED: "completed";
        }>;
        type: z.ZodDefault<z.ZodEnum<{
            readonly RACE: "race";
            readonly BATTLE: "battle";
            readonly SOCCER: "soccer";
        }>>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
        completedAt: z.ZodOptional<z.ZodDate>;
    }, z.core.$strip>>>;
    playerIds: z.ZodArray<z.ZodUUID>;
    linkedPurchaseId: z.ZodOptional<z.ZodString>;
    status: z.ZodDefault<z.ZodEnum<{
        readonly REGISTRATION: "REGISTRATION";
        readonly TURN_CREATION: "TURN_CREATION";
        readonly READY: "READY";
        readonly STARTED: "STARTED";
        readonly FINISHED: "FINISHED";
        readonly CANCELLED: "CANCELLED";
    }>>;
    createdAt: z.ZodDate;
    updatedAt: z.ZodDate;
    players: z.ZodArray<z.ZodObject<{
        id: z.ZodUUID;
        nickname: z.ZodString;
        avatarUrl: z.ZodOptional<z.ZodURL>;
        birthDate: z.ZodDate;
        type: z.ZodDefault<z.ZodEnum<{
            readonly ADULT: "ADULT";
            readonly MINOR: "MINOR";
        }>>;
        ownerUserId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
        isGuest: z.ZodDefault<z.ZodBoolean>;
        waiver: z.ZodObject<{
            isSigned: z.ZodDefault<z.ZodBoolean>;
            waiverId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
            templateVersion: z.ZodOptional<z.ZodString>;
            expiresAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
        }, z.core.$strip>;
        stats: z.ZodNullable<z.ZodOptional<z.ZodObject<{
            totalRaces: z.ZodDefault<z.ZodNumber>;
            bestTimeMs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            xp: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
    }, z.core.$strip>>;
    turns: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        purchaseId: z.ZodString;
        sessionId: z.ZodOptional<z.ZodString>;
        leaderPlayerId: z.ZodString;
        gameTickets: z.ZodArray<z.ZodString>;
        playerIds: z.ZodArray<z.ZodString>;
        status: z.ZodEnum<{
            readonly CREATED: "created";
            readonly IN_QUEUE: "in_queue";
            readonly READY: "ready";
            readonly PLAYING: "playing";
            readonly COMPLETED: "completed";
        }>;
        tasks: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            type: z.ZodEnum<{
                readonly QR_SCAN: "qr_scan";
                readonly MANUAL_CHECK: "manual_check";
                readonly LINK_ACCEPT: "link_accept";
            }>;
            status: z.ZodEnum<{
                readonly PENDING: "pending";
                readonly COMPLETED: "completed";
            }>;
            label: z.ZodString;
            metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            completedAt: z.ZodOptional<z.ZodDate>;
        }, z.core.$strip>>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
        startedAt: z.ZodOptional<z.ZodDate>;
        completedAt: z.ZodOptional<z.ZodDate>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export declare const createSessionInputSchema: z.ZodObject<{
    contactPhone: z.ZodOptional<z.ZodString>;
    userId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    tickets: z.ZodArray<z.ZodObject<{
        quantity: z.ZodNumber;
        type: z.ZodEnum<{
            readonly Race: "Race";
            readonly Battle: "Battle";
        }>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const joinSessionSchema: z.ZodObject<{
    nickname: z.ZodString;
    birthDate: z.ZodCoercedDate<unknown>;
}, z.core.$strip>;
export declare const addExistingPlayersSchema: z.ZodObject<{
    playerIds: z.ZodArray<z.ZodUUID>;
}, z.core.$strip>;
export declare const updateSessionStatusSchema: z.ZodObject<{
    status: z.ZodEnum<{
        readonly REGISTRATION: "REGISTRATION";
        readonly TURN_CREATION: "TURN_CREATION";
        readonly READY: "READY";
        readonly STARTED: "STARTED";
        readonly FINISHED: "FINISHED";
        readonly CANCELLED: "CANCELLED";
    }>;
}, z.core.$strip>;
export declare const createGameTurnInputSchema: z.ZodObject<{
    assignments: z.ZodArray<z.ZodObject<{
        ticketId: z.ZodString;
        playerId: z.ZodUUID;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const assignSessionTicketsInputSchema: z.ZodObject<{
    assignments: z.ZodArray<z.ZodObject<{
        ticketId: z.ZodString;
        playerId: z.ZodUUID;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const bulkCreateGameTurnSchema: z.ZodObject<{
    turns: z.ZodArray<z.ZodObject<{
        assignments: z.ZodArray<z.ZodObject<{
            ticketId: z.ZodString;
            playerId: z.ZodUUID;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
