/**
 * drawdown.ts — Maximum drawdown calculation from price or return series.
 * Pure functions, zero external dependencies.
 */
/** Result of a max drawdown calculation */
export interface DrawdownResult {
    /** Maximum drawdown as a positive decimal (e.g. 0.20 = 20% decline) */
    maxDrawdown: number;
    /** Index in the input array where the peak occurred (before the drawdown) */
    peakIndex: number;
    /** Index in the input array where the trough occurred (bottom of the drawdown) */
    troughIndex: number;
    /** Value at the peak */
    peakValue: number;
    /** Value at the trough */
    troughValue: number;
}
/**
 * Compute the maximum drawdown from a price series.
 *
 * A drawdown is the decline from a historical peak to a subsequent trough.
 * Max drawdown is the largest such decline over the entire series, expressed
 * as a fraction of the peak value.
 *
 * @param prices - Array of prices in chronological order (oldest first).
 *                 Must have at least 2 elements.
 * @returns DrawdownResult with the max drawdown value and the peak/trough indices
 */
export declare function maxDrawdown(prices: number[]): DrawdownResult;
/**
 * Compute the maximum drawdown from a return series.
 * First reconstructs a cumulative equity curve (starting at 1.0),
 * then computes the max drawdown on that curve.
 *
 * @param returns - Array of periodic returns (e.g. daily simple returns)
 * @returns DrawdownResult with the max drawdown and peak/trough indices
 *          (indices refer to positions in the returns array; the equity curve
 *          has length returns.length + 1, with index 0 being the starting value)
 */
export declare function maxDrawdownFromReturns(returns: number[]): DrawdownResult;
//# sourceMappingURL=drawdown.d.ts.map