import type { VenueLogoName } from "../../primitives/venue-logo/venue-logo.types";
export type OrderbookTone = "positive" | "negative";
export type OrderbookRowData = {
    id: string;
    venue: VenueLogoName;
    /** All venues with orders at this price level (for multi-venue display). */
    venues?: VenueLogoName[];
    price: number;
    size: number;
    total: number;
    tone: OrderbookTone;
    barScale: number;
    venueBreakdown?: Partial<Record<VenueLogoName, number>>;
    sourceOutcomeIds?: string[];
};
export type OrderbookEntry = {
    kind: "ask";
    row: OrderbookRowData;
    cumulativeDepth: number;
    unifiedBarScale: number;
} | {
    kind: "bid";
    row: OrderbookRowData;
    cumulativeDepth: number;
    unifiedBarScale: number;
} | {
    kind: "spread";
    midPrice: number | null;
    spread: number | null;
};
export type OrderbookLabels = {
    midPrice: string;
    spread: string;
    /** Column header for the depth bar column (e.g. "Trade Yes"). */
    tradeOutcome?: string;
    price?: string;
    shares?: string;
    total?: string;
    asks?: string;
    bids?: string;
    /** Prefix for the "Last" label in the spread row (e.g. "Yes"). */
    lastOutcome?: string;
};
export type OrderbookProps = {
    /** Pre-resolved unified entries (asks + spread + bids). */
    entries: OrderbookEntry[];
    /** Format a numeric quantity for display (e.g. size column). */
    formatNumber: (value: number) => string;
    /** Format a currency value for display (e.g. total column). */
    formatCurrency: (value: number) => string;
    /** Number of visible rows per side (asks/bids). Controls container height. Default: 4. */
    visibleRows?: number;
    /** Enable CSS transition animations on bar widths. Default: true. */
    enableAnimations?: boolean;
    /** Market identifier -- when this changes, the book re-centers the spread on first render. */
    marketId?: string | null;
    /** Snapshot identity metadata retained for compatibility. Snapshot updates do not auto-recenter. */
    snapshotKey?: string | number | null;
    /** Legacy alias for marketId. */
    outcomeId?: string | null;
    /** Labels for the orderbook. All fields are optional and default to English. */
    labels?: Partial<OrderbookLabels>;
    /** Optional className for the root element. */
    className?: string;
};
