import { ChatRoomId } from '../chat'; import { Coin } from '../market'; import { UserId } from '../user'; import { RecipeLogic } from './RecipeLogic'; import { RecipePrivacy } from './RecipePrivacy'; import { RecipeRun } from './RecipeRun'; import { RecipeInterval, RecipeTimeRange } from './RecipeTime'; export interface PublicRecipe { /** The recipe ID */ id: RecipeId; /** The recipe slug, for the URL. */ slug: string; /** The name of the recipe. */ name: string; /** Privacy (default 'PRIVATE') */ privacy: RecipePrivacy; /** Coin that this recipe is for */ coin: Coin; /** The user who created this recipe. */ creator: UserId; /** The recipe's emoji. */ emoji: string; /** The logic within the recipe. */ logicFlow: RecipeLogic; /** List of users who saved this recipe. */ savedBy: UserId[]; /** A backtest of the recipe. */ bestRun?: RecipeRun; /** The interval that the backtest is run for. */ interval: RecipeInterval; /** The time range over which the backtest is run. */ timeRange: RecipeTimeRange; /** Version number that is incremented when the recipe logic is upated. */ version: number; /** Chat room associated with the recipe. Undefined if private. */ chatRoom?: ChatRoomId; /** A list of recipes that were cloned from this one. */ clones: RecipeId[]; /** What recipe was cloned to make this one? */ clonedId?: RecipeId; } export declare type RecipeId = string;