///
import { BlockAssets, MethodContext, ImmutableMethodContext } from '../../state_machine';
import { JSONObject } from '../../types';
export interface ModuleConfig {
tokenID: Buffer;
brackets: ReadonlyArray;
offset: number;
distance: number;
rewardReductionFactorBFT: bigint;
}
export type ModuleConfigJSON = JSONObject;
export interface TokenMethod {
mint(methodContext: MethodContext, address: Buffer, id: Buffer, amount: bigint): Promise;
userSubstoreExists(methodContext: ImmutableMethodContext, address: Buffer, tokenID: Buffer): Promise;
}
export interface RandomMethod {
isSeedRevealValid(methodContext: ImmutableMethodContext, generatorAddress: Buffer, assets: BlockAssets): Promise;
}
export interface BFTMethod {
impliesMaximalPrevotes(methodContext: ImmutableMethodContext): Promise;
}
export interface DefaultReward {
reward: string;
}
export interface InflationRate {
tokenID: string;
rate: string;
}