import { z } from 'zod';
export declare const kartProgressSchema: z.ZodObject<{
    checkpointId: z.ZodString;
    checkpointProgress: z.ZodNumber;
    timestampISO: z.ZodObject<{
        origin: z.ZodString;
        server: z.ZodString;
    }, z.core.$strip>;
    lap: z.ZodNumber;
    totalProgress: z.ZodNumber;
}, z.core.$strip>;
export declare const lapTimeSchema: z.ZodObject<{
    lap: z.ZodNumber;
    timeInSeconds: z.ZodNumber;
    completedAt: z.ZodString;
    completedAtCheckpointId: z.ZodString;
    completedAtCheckpointProgress: z.ZodNumber;
}, z.core.$strip>;
export declare const raceKartStateSchema: z.ZodObject<{
    coins: z.ZodNumber;
    currentLap: z.ZodNumber;
}, z.core.$strip>;
export declare const raceRankingItemSchema: z.ZodObject<{
    kartGuid: z.ZodString;
    position: z.ZodNumber;
    time: z.ZodNumber;
    progress: z.ZodNumber;
    lapsCompleted: z.ZodNumber;
}, z.core.$strip>;
export declare const rankingWithKartsAndLapTimesSchema: z.ZodObject<{
    kartGuid: z.ZodString;
    position: z.ZodNumber;
    time: z.ZodNumber;
    progress: z.ZodNumber;
    lapsCompleted: z.ZodNumber;
    lapTimes: z.ZodArray<z.ZodObject<{
        lap: z.ZodNumber;
        timeInSeconds: z.ZodNumber;
        completedAt: z.ZodString;
        completedAtCheckpointId: z.ZodString;
        completedAtCheckpointProgress: z.ZodNumber;
    }, z.core.$strip>>;
    fastestLap: z.ZodNullable<z.ZodObject<{
        lap: z.ZodNumber;
        timeInSeconds: z.ZodNumber;
        completedAt: z.ZodString;
        completedAtCheckpointId: z.ZodString;
        completedAtCheckpointProgress: z.ZodNumber;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const raceSchema: z.ZodObject<{
    id: z.ZodNumber;
    status: z.ZodEnum<{
        readonly NON_STARTED: "non-started";
        readonly ACTIVE: "active";
        readonly YELLOW_FLAG: "yellow-flag";
        readonly RED_FLAG: "red-flag";
        readonly FINISHED: "finished";
        readonly KART_ELIMINATED: "kart-eliminated";
    }>;
    kartsGuids: z.ZodArray<z.ZodString>;
    powerUpsIds: z.ZodArray<z.ZodString>;
    gameTrackId: z.ZodString;
    coins: z.ZodNumber;
    time: z.ZodNumber;
    speedConfig: z.ZodNumber;
    createdAt: z.ZodDate;
    startedAt: z.ZodOptional<z.ZodDate>;
    finishedAt: z.ZodOptional<z.ZodDate>;
    finishedReason: z.ZodOptional<z.ZodEnum<{
        readonly TIME_IS_OVER: "TIME_IS_OVER";
        readonly GAME_KARTS_FINISHED: "GAME_KARTS_FINISHED";
        readonly EMERGENCY: "EMERGENCY";
        readonly BY_CONTROLLER: "BY_CONTROLLER";
    }>>;
    type: z.ZodLiteral<"Race">;
    laps: z.ZodNumber;
    kartsState: z.ZodRecord<z.ZodString, z.ZodObject<{
        coins: z.ZodNumber;
        currentLap: z.ZodNumber;
    }, z.core.$strip>>;
    kartsProgress: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
        checkpointId: z.ZodString;
        checkpointProgress: z.ZodNumber;
        timestampISO: z.ZodObject<{
            origin: z.ZodString;
            server: z.ZodString;
        }, z.core.$strip>;
        lap: z.ZodNumber;
        totalProgress: z.ZodNumber;
    }, z.core.$strip>>>;
    gameRanking: z.ZodArray<z.ZodObject<{
        kartGuid: z.ZodString;
        position: z.ZodNumber;
        time: z.ZodNumber;
        progress: z.ZodNumber;
        lapsCompleted: z.ZodNumber;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const raceWithDetailedRankingSchema: z.ZodObject<{
    type: z.ZodLiteral<"Race">;
    id: z.ZodNumber;
    coins: z.ZodNumber;
    laps: z.ZodNumber;
    status: z.ZodEnum<{
        readonly NON_STARTED: "non-started";
        readonly ACTIVE: "active";
        readonly YELLOW_FLAG: "yellow-flag";
        readonly RED_FLAG: "red-flag";
        readonly FINISHED: "finished";
        readonly KART_ELIMINATED: "kart-eliminated";
    }>;
    time: z.ZodNumber;
    kartsGuids: z.ZodArray<z.ZodString>;
    powerUpsIds: z.ZodArray<z.ZodString>;
    gameTrackId: z.ZodString;
    speedConfig: z.ZodNumber;
    createdAt: z.ZodDate;
    startedAt: z.ZodOptional<z.ZodDate>;
    finishedAt: z.ZodOptional<z.ZodDate>;
    finishedReason: z.ZodOptional<z.ZodEnum<{
        readonly TIME_IS_OVER: "TIME_IS_OVER";
        readonly GAME_KARTS_FINISHED: "GAME_KARTS_FINISHED";
        readonly EMERGENCY: "EMERGENCY";
        readonly BY_CONTROLLER: "BY_CONTROLLER";
    }>>;
    kartsState: z.ZodRecord<z.ZodString, z.ZodObject<{
        coins: z.ZodNumber;
        currentLap: z.ZodNumber;
    }, z.core.$strip>>;
    gameRanking: z.ZodArray<z.ZodObject<{
        kartGuid: z.ZodString;
        position: z.ZodNumber;
        time: z.ZodNumber;
        progress: z.ZodNumber;
        lapsCompleted: z.ZodNumber;
        lapTimes: z.ZodArray<z.ZodObject<{
            lap: z.ZodNumber;
            timeInSeconds: z.ZodNumber;
            completedAt: z.ZodString;
            completedAtCheckpointId: z.ZodString;
            completedAtCheckpointProgress: z.ZodNumber;
        }, z.core.$strip>>;
        fastestLap: z.ZodNullable<z.ZodObject<{
            lap: z.ZodNumber;
            timeInSeconds: z.ZodNumber;
            completedAt: z.ZodString;
            completedAtCheckpointId: z.ZodString;
            completedAtCheckpointProgress: z.ZodNumber;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const kartLapTimesSchema: z.ZodObject<{
    kartGuid: z.ZodString;
    lapTimes: z.ZodArray<z.ZodObject<{
        lap: z.ZodNumber;
        timeInSeconds: z.ZodNumber;
        completedAt: z.ZodString;
        completedAtCheckpointId: z.ZodString;
        completedAtCheckpointProgress: z.ZodNumber;
    }, z.core.$strip>>;
}, z.core.$strip>;
