import type { HighLowClose } from '../../base/Candle.type.js';
import { TrendIndicatorSeries } from '../../base/Indicator.js';
import type { SignalThresholds } from '../../base/SignalThresholds.type.js';
export type UltimateOscillatorConfig = {
    longPeriod?: number;
    mediumPeriod?: number;
    shortPeriod?: number;
};
export declare class UltimateOscillator extends TrendIndicatorSeries<HighLowClose<number>> {
    #private;
    readonly shortPeriod: number;
    readonly mediumPeriod: number;
    readonly longPeriod: number;
    constructor({ longPeriod, mediumPeriod, shortPeriod }?: UltimateOscillatorConfig, { overbought, oversold }?: SignalThresholds);
    getRequiredInputs(): number;
    update(candle: HighLowClose<number>, replace: boolean): number | null;
    protected calculateSignalState(result: number | null | undefined): "BEARISH" | "BULLISH" | "SIDEWAYS" | "UNKNOWN";
}
