export interface Market {
id: string;
question: string;
slug: string;
event_id: string;
event_title: string;
event_slug: string;
category: string;
image_url: string;
yes_price: number;
no_price: number;
spread: number;
volume_24h: number;
volume_total: number;
liquidity: number;
end_date: string;
neg_risk: number;
group_item_title: string;
updated_at: string;
}
export interface ScreenerStats {
total_markets: number; // live count of active markets (matches the list)
total_volume_24h: number;
ending_today: number; // markets resolving within 24h
top_volume: {
question: string;
volume_24h: number;
};
categories: Record<string, number>;
}
export interface MarketDetail extends Market {
tags: string[];
clob_token_ids: string[];
}
export interface MarketsMeta {
total: number;
limit: number;
offset: number;
has_more: boolean;
}
export interface Alert {
id: number;
market_id: string;
side: 'yes' | 'no';
direction: 'above' | 'below';
threshold: number;
triggered: boolean;
triggered_at: string | null;
created_at: string;
question: string;
yes_price: number;
no_price: number;
image_url: string;
}