import ITranslation from '../Translation'; export interface ITcgExternalServiceParams { readonly cardgame_slugs: string[]; readonly default_parent_category?: string | null; readonly buyback_cards_active?: boolean; readonly set_order_tree?: ISetOrderEntry[]; readonly set_order_updated_at?: string | null; } export interface ITcgSetAttribute { readonly id: number; readonly card_game_slug: string; readonly slug: string; readonly parent_slug: string | null; readonly name_fr: string; readonly name_en: string; readonly description_fr: string; readonly description_en: string; readonly updated_at: string; readonly img_url: string | null; } export interface ITcgCardGame { readonly id: number; readonly slug: string; readonly name_fr: string; readonly name_en: string; readonly description_fr: string; readonly description_en: string; readonly img_url: string | null; readonly brand_slug: string; } export interface ITcgBrand { readonly id: number; readonly slug: string; readonly name_fr: string; readonly name_en: string; readonly description_fr: string; readonly description_en: string; readonly img_url: string | null; } export interface ITcgAttribute { readonly slug: string; readonly name_fr: string; readonly name_en: string; readonly description_fr: string; readonly description_en: string; readonly attributeValues: ITcgAttributeValue[]; } export interface ITcgAttributeValue { readonly slug: string; readonly position: number | null; readonly name_fr: string; readonly name_en: string; readonly default_tag?: string; readonly game_slug_csv: string; readonly image_url: string | null; } export interface IServiceResult { readonly status: string; readonly error: string; } export interface ICardDetails { readonly slug: string; readonly brandSlug?: string; readonly category: string; readonly setSlug: string; readonly isSingle: boolean; readonly name: { fr: string; en: string; }; readonly description: { fr: string; en: string; }; readonly attributes: { name: string; value: string; }[]; readonly images: string[]; readonly currentPrice: number | null; readonly priceHistory: IPriceHistory[]; readonly isPresale?: boolean; readonly releaseDate?: Date | string; readonly tcgPlayerId?: number; readonly setName?: string; } export interface IPriceHistory { readonly provider: string; readonly prices: IPricePoint[]; } export interface IPricePoint { readonly date: string; readonly subType: string | null; readonly low?: number; readonly high?: number; readonly market: number; } export declare enum TCGProductFormatsEnum { CARD = "tcg_card", PACK = "tcg_pack", BUNDLE = "tcg_bundle", SINGLE = "tcg_single" } export declare enum TCGCardFinishEnum { NORMAL = "normal", FOIL = "foil", HOLO = "holo", HOLOFOIL = "holofoil", COLDFOIL = "cold-foil", REVERSE_HOLOFOIL = "reverse-holofoil", ETCHED = "etched", RAINBOW_FOIL = "rainbow-foil", UNLIMITED = "unlimited", UNLIMITED_HOLOFOIL = "unlimited-holofoil", UNLIMITED_NORMAL = "unlimited-edition-normal", UNLIMITED_RAINBOWFOIL = "unlimited-edition-rainbow-foil", FIRST_EDITION = "1st-edition", FIRST_EDITION_NORMAL = "1st-edition-normal", FIRST_EDITION_HOLOFOIL = "1st-edition-holofoil", FIRST_EDITION_COLDFOIL = "1st-edition-cold-foil", FIRST_EDITION_RAINBOWFOIL = "1st-edition-rainbow-foil" } export declare enum TCGAttributesEnum { FINISH = "tcg_finish", CONDITION = "tcg_condition", LANG = "tcg_language", SET = "tcg_set", TYPE = "tcg_product_type" } /** * For TCG attribute ids/slugs meant to define a given sku/variation for a card. * NOTE - Do not add new values to enum unless they DIRECTLY influence a card's sku */ export declare enum TCGVariationAttributesEnum { FINISH = "tcg_finish", CONDITION = "tcg_condition", LANG = "tcg_language" } export declare const defaultValuesForTcgAttributes: { [value in TCGVariationAttributesEnum]: string; }; export type OperatorOptions = '<' | '<=' | '>=' | '>' | 'between'; export type BuybackCategorySlug = 'mtg' | 'poke' | 'fab' | 'lorc' | 'onep' | 'rift'; export type IBuybackLogic = { [key in BuybackCategorySlug]: IBuybackLogicItem[]; }; export interface IBuybackPrice { readonly buyback: boolean; readonly regTcgPrice?: number; readonly finish?: TCGCardFinishEnum; readonly calculatedPrice?: number; } export interface IBuybackLogicItem { operator: OperatorOptions; regPrice: number[]; buyback: boolean; buyBackPercent?: number; } export interface ICardPricesResult { [slug: string]: { subType: TCGCardFinishEnum; price: number; category: BuybackCategorySlug; }[]; } export interface ITcgAttributeValues { [slug: string]: { readonly value: ITranslation[]; readonly tag: string | undefined; readonly shortLabel?: ITranslation[]; }; } export type ITcgAttributes = { [value in TCGVariationAttributesEnum]: ITcgAttributeValues; }; export interface ILangOption { slug: string; label: string; fullLabel?: string; } export interface ICardFinishTag { label: string; value: { [TCGVariationAttributesEnum.CONDITION]: string; [TCGVariationAttributesEnum.FINISH]: string; }; fullLabel?: string; variant?: TCGCardFinishEnum; selected?: boolean; extraLabel?: string; } export declare enum ItemNameVariantEnum { BOTH = "use-both", PARENT = "use-parent", DECLI = "use-decli" } export interface ISetOrderEntry { readonly category_id: string; readonly set_slugs: string[]; }