import type { BlackOperation, Contract, GeneralAction, Operation } from "./Actions"; export interface SuccessChanceParams { /** Whether the success chance should be based on estimated statistics */ est: boolean; } type AvailabilitySuccess = { available: true } & T; type AvailabilityFailure = { available?: undefined; error: string }; export type Availability = AvailabilitySuccess | AvailabilityFailure; type AttemptSuccess = { success: true; message?: string } & T; type AttemptFailure = { success?: undefined; message: string }; export type Attempt = AttemptSuccess | AttemptFailure; export type Action = Contract | Operation | BlackOperation | GeneralAction; export type ActionIdFor = Pick; export type ActionIdentifier = | ActionIdFor | ActionIdFor | ActionIdFor | ActionIdFor; export type LevelableAction = Contract | Operation;