interface IWaxBaseInterface {
// Core properties
readonly chainId: string;
readonly addressPrefix: string;
readonly ASSETS: Record<string, NaiAsset>;
readonly config: IChainConfig;
readonly formatter: IWaxExtendableFormatter;
readonly waxify: IWaxExtendableFormatter['waxify'];
// Transaction methods
createTransactionWithTaPoS(taposBlockId: string, expirationTime?: string | Date | number): ITransaction;
createTransactionFromJson(transactionData: string | object): ITransaction;
createTransactionFromLegacyJson(transactionData: string | object): ITransaction;
createTransactionFromProto(protoTransaction: transaction): ITransaction;
convertTransactionToBinaryForm(transaction: ApiTransaction, stripSignatures?: boolean): string;
convertTransactionFromBinaryForm(hexString: string): ApiTransaction;
// Asset methods
hiveCoins(amount: number): NaiAsset;
hbdCoins(amount: number): NaiAsset;
vestsCoins(amount: number): NaiAsset;
hiveSatoshis(amount: number | string | bigint): NaiAsset;
hbdSatoshis(amount: number | string | bigint): NaiAsset;
vestsSatoshis(amount: number | string | bigint): NaiAsset;
getAsset(nai: NaiAsset): { amount: string; symbol: string };
// Conversion methods
vestsToHp(vests: NaiAsset, totalVestingFundHive: NaiAsset, totalVestingShares: NaiAsset): NaiAsset;
hpToVests(hive: NaiAsset, totalVestingFundHive: NaiAsset, totalVestingShares: NaiAsset): NaiAsset;
hbdToHive(hbd: NaiAsset, base: NaiAsset, quote: NaiAsset): NaiAsset;
hiveToHbd(hive: NaiAsset, base: NaiAsset, quote: NaiAsset): NaiAsset;
// Calculation methods
calculateCurrentManabarValue(now: number, maxMana: number | string | bigint, currentMana: number | string | bigint, lastUpdateTime: number): IManabarData;
calculateManabarFullRegenerationTime(now: number, maxMana: number | string | bigint, currentMana: number | string | bigint, lastUpdateTime: number): number;
calculateAccountHp(vests: NaiAsset, totalVestingFundHive: NaiAsset, totalVestingShares: NaiAsset): NaiAsset;
calculateWitnessVotesHp(votes: NaiAsset, totalVestingFundHive: NaiAsset, totalVestingShares: NaiAsset): NaiAsset;
calculateHpApr(headBlockNum: number, vestingRewardPercent: number, virtualSupply: NaiAsset, totalVestingFundHive: NaiAsset): number;
estimateHiveCollateral(currentMedianHistoryBase: NaiAsset, currentMedianHistoryQuote: NaiAsset, currentMinHistoryBase: NaiAsset, currentMinHistoryQuote: NaiAsset, hbdAmountToGet: NaiAsset): NaiAsset;
estimateHbdInterest(accountHdbSeconds: number | string | bigint, hbdBalance: NaiAsset, lastCompoundingDate: Date | number | string, now: Date | number | string, interestRate: number): NaiAsset;
// Cryptographic methods
suggestBrainKey(): { brainKey: string; wifPrivateKey: string; associatedPublicKey: string };
getPrivateKeyFromPassword(account: string, role: string, password: string): { wifPrivateKey: string; associatedPublicKey: string };
calculatePublicKey(wifPrivateKey: string): string;
convertRawPrivateKeyToWif(rawPrivateKey: string): string;
convertRawPublicKeyToWif(rawPublicKey: string): string;
getPublicKeyFromSignature(sigDigest: string, signature: string): string;
// Validation methods
isValidAccountName(name: string): boolean;
operationGetImpactedAccounts(operation: operation): Set<string>;
operationBinaryViewMetadata(operation: operation, isHf26Serialization?: boolean): IBinaryViewOutputData;
// Utility methods
getVersion(): string;
extendConfig(config: IWaxBaseExtendibleOptions): IWaxBaseInterface;
delete(): void;
}