import { Candle, SupplyZone, DemandZone } from '../types';
/**
 * Identifies all supply and demand zones in a given array of candles.
 *
 * Each zone receives a `confidence` score (0–1) built from seven equally-weighted factors:
 *
 * **Departure leg (×3 weight, computed per zone):**
 * - **countFactor**: proportion of departure candles that are decisive or explosive.
 * - **rangeFactor**: average departure candle range normalised by local ATR.
 * - **volumeFactor**: departure volume relative to base volume (ratio / (ratio + 1)).
 *
 * **Structural context (×1 weight each, blended in `identifyZones`):**
 * - **positionFactor**: higher for supply zones at elevated prices and demand zones at
 *   depressed prices — harder for the opposing side to push through.
 * - **freshnessFactor**: 1.0 if price has never entered the zone since formation; 0.5 if
 *   price touched the proximal line but was repelled before the distal line.
 * - **timeframeFactor**: log-normalised candle interval — 1m → 0.0, 1w → 1.0. Higher
 *   timeframe zones carry more institutional significance.
 * - **rrScore**: departure-based risk/reward score. Measures how far price actually
 *   travelled during the departure leg relative to the zone width (stop distance).
 *   `min(departureExtent / stopDistance / 5, 1)` — a 5:1 R:R maps to 1.0. Also stored
 *   as a standalone `zone.rrScore` property for direct access when grading setups.
 *
 * Blend formula: `(departureScore × 3 + positionFactor + freshnessFactor + timeframeFactor) / 6`
 * for the first six factors, then `(sixFactorScore × 6 + rrScore) / 7` to include the seventh,
 * giving each of the seven factors equal weight (~14.3%).
 *
 * @param candles - An array of Candle objects to scan.
 * @returns An object containing arrays of identified supply and demand zones.
 */
export declare function identifyZones(candles: Candle[]): {
    supplyZones: SupplyZone[];
    demandZones: DemandZone[];
};
