export type Color = "green" | "red" | "gray";
export type DataPoint = Record<string, number | string | Date>;
export type NumberOrUndefined = number | undefined;
export type PriceLimit = (limit: number, threshold?: number) => {
    priceLimit: number;
    isHit: boolean;
} | undefined;
export interface Candle {
    index: number;
    date?: Date;
    dateString?: string;
    dateYear?: number;
    dateQuarter?: number;
    dateMonth?: number;
    dateMonthName?: string;
    dateDate?: number;
    dateWeekday?: number;
    dateWeekdayName?: string;
    halvingDate?: Date;
    halvingEpoch?: number;
    halvingYear?: number;
    halvingProgress?: number;
    timeHour?: number;
    timeHourQuarter?: number;
    timeMinute?: number;
    timeIsPremarket?: boolean;
    timeIsIntraday?: boolean;
    timeIsPostmarket?: boolean;
    timeIsDark?: boolean;
    priceOpen?: number;
    priceHigh?: number;
    priceLow?: number;
    priceClose?: number;
    priceMean?: number;
    priceChange?: number;
    priceChangePremarket?: number;
    priceChangeIntraday?: number;
    priceChangeCumulative?: number;
    priceRange?: number;
    priceRangeDiff?: number;
    priceRangeMean?: number;
    priceLimit?: PriceLimit;
    volume?: number;
    volumeValue?: number;
    obv?: number;
    obvValue?: number;
    vwap?: number;
    fibonacci0?: number;
    fibonacci236?: number;
    fibonacci382?: number;
    fibonacci5?: number;
    fibonacci618?: number;
    fibonacci786?: number;
    fibonacci1?: number;
    rsi?: number;
    averageGain?: number;
    averageLoss?: number;
    macd?: number;
    macdSignal?: number;
    macdHist?: number;
    macdPivot?: number;
    color?: Color;
    colorGreen?: number;
    colorRed?: number;
    colorGray?: number;
    colorVolumeGreen?: number;
    colorVolumeRed?: number;
    colorVolumeGray?: number;
    candlestickTop?: number;
    candlestickBottom?: number;
    candlestickSize?: number;
    candlestickUpper?: number;
    candlestickBody?: number;
    candlestickLower?: number;
    candlestickIsGapUp?: boolean;
    candlestickIsGapDown?: boolean;
    candlestickGapSize?: number | null;
    candlestickGapTarget?: number | null;
    candlestickIsBullish?: boolean;
    candlestickIsBearish?: boolean;
    candlestickIsNeutral?: boolean;
    candlestickIsHammer?: boolean;
    candlestickIsHammerGreen?: boolean;
    candlestickIsInvertedHammer?: boolean;
    candlestickIsInvertedHammerRed?: boolean;
    candlestickIsMarubozu?: boolean;
    candlestickIsMarubozuGreen?: boolean;
    candlestickIsMarubozuRed?: boolean;
    candlestickIsRejectionTop?: boolean;
    candlestickIsRejectionBottom?: boolean;
    phaseDistribution?: number;
    phaseAccumulation?: number;
    pressureSelling?: number;
    pressureBuying?: number;
    [key: string]: unknown;
}
export interface Context {
    prevClose?: number;
    prevClose2?: number;
    obv: number;
    obvValue: number;
    vwapPV: number;
    vwapVolume: number;
    fib: {
        high?: number;
        low?: number;
    };
    window: Record<string, number[]>;
    rsi: {
        initialized?: boolean;
        prevAvgGain?: number;
        prevAvgLoss?: number;
    };
    ema: Record<string, {
        initialized?: boolean;
        prev?: number;
    }>;
    macd: {
        initialized?: boolean;
        prev?: number;
        count?: number;
    };
    color: Record<string, [Color, NumberOrUndefined][]>;
    prevTopBottom: [] | [number, number];
    trend: Record<string, [number, number, number, number]>;
}
export interface Option {
    datetime?: string;
    open?: string;
    high?: string;
    low?: string;
    close?: string;
    volume?: string;
    date?: boolean;
    halving?: boolean;
    time?: boolean;
    leverage?: number;
    basePrice?: number;
    price?: boolean;
    limit?: boolean;
    obv?: boolean;
    vwap?: boolean;
    fibonacci?: boolean;
    color?: boolean;
    candlestick?: boolean;
    gap?: "body" | "wick" | null;
    trend?: boolean;
    rsi?: boolean | number;
    ema?: boolean | number[];
    macd?: boolean | [number, number, number];
    macdPivot?: boolean;
    sma?: boolean | number[];
    signal?: (string | string[])[];
    phase?: boolean | number;
    pressure?: boolean | number;
    anchor?: boolean | number[];
    normalize?: string[];
}
export interface NormalizedOption {
    datetime: string;
    open: string;
    high: string;
    low: string;
    close: string;
    volume: string;
    date?: boolean;
    halving?: boolean;
    time?: boolean;
    leverage?: number;
    basePrice?: number;
    price?: boolean;
    limit?: boolean;
    obv?: boolean;
    vwap?: boolean;
    fibonacci?: boolean;
    color?: boolean;
    candlestick?: boolean;
    gap?: "body" | "wick" | null;
    trend?: boolean;
    rsi: number | false;
    ema: number[];
    macd: [number, number, number] | false;
    macdPivot: boolean;
    sma: number[];
    signal: string[][];
    phase: number | false;
    pressure: number | false;
    anchor: number[];
    normalize: string[];
}
//# sourceMappingURL=interfaces.d.ts.map