import Killstreak from '../parseEconItem/ParsedEcon/getDescriptions/Killstreak'; export type NameOrDefindex = { name: string; } | { defindex: number; }; export type ItemAttributes = { name: string; defindex?: number; quality: number | string; craftable: boolean; australium?: boolean; festivized?: boolean; killstreak?: number | string; elevated?: boolean; wear?: number | string; texture?: number | string; effect?: number | string; itemNumber?: ItemNumber; isUniqueHat?: boolean; target?: string; targetDefindex?: number; output?: string; outputDefindex?: number; outputQuality?: number | string; }; export type ItemAttributesInStrings = { quality: string; killstreak?: string; wear?: string; texture?: string; effect?: string; outputQuality?: string; }; export type DefaultItemAttributes = { name: string; craftable: boolean; australium?: boolean; festivized?: boolean; elevated?: boolean; itemNumber?: ItemNumber; isUniqueHat?: boolean; target?: string; output?: string; }; export type ItemAttributesInNumbers = { quality: number; killstreak?: number; wear?: number; texture?: number; effect?: number; outputQuality?: number; }; export type ItemDefindexes = { defindex: number; targetDefindex?: number; outputDefindex?: number; }; export type ItemNumber = { value: number; type: 'crate' | 'series' | 'medal' | 'craft'; }; export type TargetItem = { target: string; }; export type OutputItem = { output: string; outputQuality: string; }; export type TargetOutputItem = TargetItem & OutputItem; export type StringQuality = { value: string; elevated: boolean; }; export type NumberQuality = { value: number; elevated: boolean; }; export type BackpackTFListing = { quality: number | string; craftable: number; item_name: string; priceindex: string | number | void; }; export type SKUAttributes = { defindex: number; quality: number; craftable: boolean; australium?: boolean; festivized?: boolean; elevated?: boolean; killstreak?: number; effect?: number; texture?: number; wear?: number; targetDefindex?: number; itemNumber?: ItemNumber; outputDefindex?: number; outputQuality?: number; }; export type EconAction = { link: string; name: string; }; export type EconTag = { name?: string; category: string; internal_name: string; localized_category_name?: string; localized_tag_name?: string; color?: string; }; export type EconDescription = { value: string; color?: string; app_data?: { def_index: number; }; }; export type EconItem = { assetid: string; descriptions: EconDescription[]; name: string; market_name: string; market_hash_name: string; tags: EconTag[]; app_data?: { def_index: number; quality: number; quantity?: string; }; type: string; tradable: number | boolean; commodity: number | boolean; marketable: number | boolean; icon_url?: string; icon_url_large?: string; appid?: number; contextid?: string; instanceid?: string; classid?: string; amount?: string; currency?: number; actions?: EconAction[]; market_actions?: EconAction[]; background_color?: string; name_color?: string; market_tradable_restriction?: number; market_marketable_restriction?: number; /** * This array contains strings used in frontend to display fraud warnings. * * We use this to check if item has been renamed. */ fraudwarnings?: string[]; }; export type TagAttributes = { quality: string; wear: number; classes: string[]; type?: string; grade?: string; collection?: string; }; export type DescriptionAttributes = { craftable: boolean; effect: string; killstreak: Killstreak; spells: string[]; parts: string[]; paint?: string; festivized?: boolean; texture?: string | void; itemNumber?: ItemNumber; }; export type PropertyAttributes = { elevated: boolean; tradable: boolean; marketable: boolean; commodity: boolean; }; export type NameAttributes = { australium: boolean; isUniqueHat: boolean; texture?: string | void; target?: string; output?: string; outputQuality?: string; itemNumber?: ItemNumber; }; export type ParsedEconOptions = { inNumbers?: boolean; useDefindexes?: boolean; }; export type PlaceholderEconNameAttributes = { tradable: boolean; craftable: boolean; quality: string | number; texture?: string | number; wear?: number; australium?: boolean; festivized?: boolean; effect?: string | number; isUniqueHat?: boolean; killstreak?: string | number; elevated?: boolean; target?: string; output?: string; outputQuality?: string | number; itemNumber?: ItemNumber; defindex?: number; outputDefindex?: number; targetDefindex?: number; }; export type ParsedEconNameAtributes = { tradable: boolean; craftable: boolean; quality: string; texture?: string; wear?: string; australium?: boolean; festivized?: boolean; effect?: string; isUniqueHat?: boolean; killstreak?: string; elevated?: boolean; target?: string; output?: string; outputQuality?: string; itemNumber?: ItemNumber; }; export type ConvertableAttributes = { killstreak?: string | number | void; wear?: string | number | void; effect?: string | number | void; quality: string | number; outputQuality?: string | number | void | null; texture?: string | number | void; }; export type EconAttributes = ParsedEconNameAtributes & MetaEconAttributes; export type MetaEconAttributes = { sheen?: string; killstreaker?: string; classes: string[]; type?: string; collection?: string; level: number; grade?: string; paint?: string; paintDefindex?: number; parts: string[]; spells: string[]; marketable: boolean; commodity: boolean; uses?: number; }; export type ParsedEconItem = EconAttributes & AddionalEconItemAttributes; export type AddionalEconItemAttributes = { name: string; fullName: string; id: string; img: string; }; export type DecomposeAttributes = { craftable: boolean; australium?: boolean; festivized?: boolean; wear?: string | void; effect?: string | void; texture?: string | void; itemNumber?: ItemNumber | null; isUniqueHat?: boolean; quality: StringQuality; killstreak?: string | void; usableItem?: Partial | null; }; export type Defindexes = { defindex?: number | null; targetDefindex?: number; outputDefindex?: number; }; /** * When using SKU */ export type StrigifySKUAttributes = SKUAttributes & { isUniqueHat?: false; };