import type { VenueMarket } from "@agg-build/hooks";
import type { MarketDetailsHeaderOutcomeItem } from "./market-details.types";
export interface MarketDetailsGraphPanelProps {
    /**
     * The card's own cross-venue cluster (`model.market.venueMarkets`), NOT the
     * full event market set. Scoping here keeps the chart's outcome resolution +
     * WS subscription limited to this market.
     */
    venueMarkets: VenueMarket[];
    selectedOutcomeLabel: string | null;
    selectedOutcomeId: string | null;
    /** Merged REST+WS live prices, used to rank/scope chart venue outcomes. */
    livePrices: Map<string, number>;
    /** WS-only per-outcome midpoints, used for the per-venue chart badges. */
    wsLivePrices: Map<string, number>;
    headerOutcomeItems: MarketDetailsHeaderOutcomeItem[];
    isResolvedMarket: boolean;
    isOutcomeSelectionLocked: boolean;
    volume: number | null | undefined;
    live?: boolean;
    classNames?: {
        graph?: string;
        footer?: string;
    };
}
/**
 * Self-contained chart panel for an expanded market card.
 *
 * IMPORTANT: every chart data hook (`useMarketChart`, `useRollingChartWindow`)
 * and all chart-local state live HERE, not in the parent `MarketDetails`. The
 * parent renders this component only while the card is open AND the Graph tab
 * is active, so inactive/closed cards never mount these hooks — no `/charts/bars`
 * request, no chart query-cache entries, and no 1s rolling-window timer are
 * created for markets the user isn't actively charting.
 */
export declare const MarketDetailsGraphPanel: {
    ({ venueMarkets, selectedOutcomeLabel, selectedOutcomeId, livePrices, wsLivePrices, headerOutcomeItems, isResolvedMarket, isOutcomeSelectionLocked, volume, live, classNames, }: MarketDetailsGraphPanelProps): JSX.Element;
    displayName: string;
};
