import { Card } from "@/mlpccg"; import { PackBuilder } from "./booster"; export type Provider = Iterator; export type Pack = Card[]; export interface PackSchema { slots: PackSlot[]; } export interface PackSlot { amount: number; provider: Provider; alternate: AlternateProvider[]; } export interface AlternateProvider { probability: number; provider: Provider; } export interface SetDraftOptions { source: "set"; set: string; } export interface BlockDraftOptions { source: "block"; block: string; } export interface CubeDraftOptions { source: "cube"; url: string; } export interface I8PCubeDraftOptions { source: "i8pcube"; url: string; } export interface LimitedBoosterDraft { type: "booster-draft"; packs: number; } export interface LimitedSealedDraft { type: "sealed"; packs: number; } export type LimitedGameType = LimitedBoosterDraft | LimitedSealedDraft; export type DraftType = | SetDraftOptions | BlockDraftOptions | CubeDraftOptions | I8PCubeDraftOptions; export interface SessionOptions { players: number; spacing: "evenly" | "randomly"; } export type DraftOptions = SessionOptions & LimitedGameType & DraftType; export interface DraftSchema { boosters: Record; factories: Record; } export type Direction = "cw" | "ccw"; export interface I8PCubeSchema { Schema: I8PPackSchema[]; ProblemPackSize: number; Cards: Record; } export interface I8PFileSchema { Schema: I8PPackSchema[]; ProblemPackSize: number; Cards: Record; } export interface I8PPackSchema { Amount: number; Type: string; }