import { ConverterConfig, Language, ConversionResult, CustomUnits, CustomScales } from '../types/converterTypes';
import { WordMapping, NumberScale } from '../types/mappingTypes';
export declare abstract class BaseConverter {
    protected wordCache: Map<number, WordMapping>;
    protected scales: NumberScale[];
    protected customUnits: CustomUnits;
    protected customScales: CustomScales;
    constructor();
    protected setCustomMappings(config: Required<ConverterConfig>): void;
    protected getWordMapping(num: number, lang: Language): string;
    protected getScaleName(value: bigint, lang: Language): string;
    protected processLargeNumber(num: bigint, words: string[], config: Required<ConverterConfig>): void;
    protected formatResult(words: string[], config: Required<ConverterConfig>): string;
    abstract convert(num: number | string | bigint, config: Required<ConverterConfig>): ConversionResult;
}
