import { ITradeIdeaCreator } from './trade-idea-creator.i'
import { ITradeIdeaStrategy } from './trade-idea-strategy.i'
import { ITradeIdea } from './trade-idea.i'

export interface IStrategyState {
	strategy: ITradeIdeaStrategy
	creator: ITradeIdeaCreator
	lastNftId: number
	totalIdeas: number
	lastValidatedNftId: number
	totalValidatedIdeas: number
	orderedIdeasNft: number[]
	ideas: Map<number, ITradeIdea>
	encryptedIdeasByKey: Map<number, number[]>
	validatedIdeasByKey: Map<number, number[]>
	orderedEncryptedIdeaKeys: number[]
	encryptedIdeas: Set<number>
	validatedIdeaKeys: Set<number>
	notNullIdeasByKey: Map<number, number[]>
	nullifiedStagesNft: Set<number>
	percentagePublicValidated: number
	allocationMap: Map<string, number>
	totalAllocated: number
	firstIdeaDateChecked: boolean
}
