import { Address } from '@btc-vision/transaction'; import { CallResult } from '../../../../contracts/CallResult.js'; import { OPNetEvent } from '../../../../contracts/OPNetEvent.js'; import { IMotoChef, InitializedEvent, PoolAddedEvent } from './IMotoChef.js'; export type TemplateMotoChefInitializedEvent = {}; export type TemplateMotoChefInitialize = CallResult< {}, OPNetEvent[] >; export type GetFarmName = CallResult<{ name: string }, OPNetEvent[]>; export type GetFarmBanner = CallResult<{ banner: string }, OPNetEvent[]>; export type SetUserTokenAddress = CallResult<{}, OPNetEvent[]>; export type TransferOwnershipToUser = CallResult<{}, OPNetEvent[]>; export type UserFeeRecipient = CallResult<{ recipient: string }, OPNetEvent[]>; export type MotoSwapFeeRecipient = CallResult<{ recipient: string }, OPNetEvent[]>; export type OpnetFeeRecipient = CallResult<{ recipient: string }, OPNetEvent[]>; export type BtcFeePercentage = CallResult<{ percentage: bigint }, OPNetEvent[]>; export type GetFeeDistributionBps = CallResult< { userFeeBps: bigint; motoSwapFeeBps: bigint; opnetFeeBps: bigint; totalBps: bigint; }, OPNetEvent[] >; export type TotalUserTokenStaked = CallResult<{ totalStaked: bigint }, OPNetEvent[]>; export interface ITemplateMotoChef extends Omit { initialize( userTokenAddress: Address, tokenPerBlock: bigint, bonusEndBlock: bigint, bonusMultiplier: bigint, BTCAllocPoint: bigint, tokenAllocPoint: bigint, userBTCFeePercentage: bigint, userFeeRecipient: string, motoSwapFeeRecipient: string, opnetFeeRecipient: string, farmName: string, farmBanner: string, additionalPoolTokens: Address[], additionalPoolAllocPoints: bigint[], ): Promise; getFarmName(): Promise; getFarmBanner(): Promise; setUserTokenAddress(tokenAddress: Address): Promise; transferOwnershipToUser(newOwner: Address): Promise; userFeeRecipient(): Promise; motoSwapFeeRecipient(): Promise; opnetFeeRecipient(): Promise; btcFeePercentage(): Promise; getFeeDistributionBps(): Promise; totalUserTokenStaked(): Promise; } export default ITemplateMotoChef;