import BN from 'bn.js'; export type ReformatAction = { type: 'UseExclusively'; records: { key: string; value: any; }[]; } | { type: 'UseReplace'; value: any; } | { type: 'Remove'; } | { type: 'UsePassThrough'; }; export type ObjectFormatterFn = (key: string, value: any) => ReformatAction; export interface ObjectFormatterInterface { format: ObjectFormatterFn; } export declare class BaseObjectFormatter implements ObjectFormatterInterface { format(_key: string, _value: any): ReformatAction; } export declare class ChainedKeyNameFormatter extends BaseObjectFormatter { readonly formatters: ObjectFormatterFn[]; constructor(...formatters: ObjectFormatterFn[]); format(key: string, value: any): ReformatAction; addFormatter(formatter: ObjectFormatterFn | undefined): void; } export declare function reformat(value: any, formatter?: ObjectFormatterFn | BaseObjectFormatter): any; export declare function reformatReserved(key: string, value: any): ReformatAction; export declare function isBN(value: unknown): value is BN; //# sourceMappingURL=formatter.d.ts.map