import { type DailySale, type Period, type ProductEvidence, type Ranking, type SelectionConfig, type VideoSale } from "./fastmoss-opportunity.js"; export type VisibleSection = { url: string; selector: string; observedAt: string; text: string; blocked: string | null; loading: boolean; inputs: Array<{ value: string; placeholder: string; checked: boolean; label: string; }>; links: Array<{ href: string; text: string; }>; tables: Array<{ headers: string[]; rows: Array<{ cells: string[]; links: Array<{ href: string; text: string; }>; images: string[]; }>; }>; }; /** Serializable DOM-only reader. Never reads app state, network responses or concealed text. */ export declare function readVisibleSection(selector: string): VisibleSection; export declare function sectionPeriod(snapshot: VisibleSection, days?: number): Period | null; export declare function rankingProducts(snapshot: VisibleSection, ranking: Ranking, config: SelectionConfig, offset?: number): ProductEvidence[]; export declare function dailyFromSection(snapshot: VisibleSection, days: number): DailySale[]; export declare function overviewFromSection(snapshot: VisibleSection): ProductEvidence["overview"]; export declare function videosFromSection(snapshot: VisibleSection, expected: Period | null): VideoSale[]; export interface EvidenceBrowser { goto(url: string): Promise; snapshot(selector: string): Promise; clickText(selector: string, text: string, occurrence?: number): Promise; next(selector: string): Promise; pause(): Promise; } export declare class VisibleFastMossCollector { private browser; constructor(browser: EvidenceBrowser); private stable; verifyOverview(product: ProductEvidence): Promise; discover(ranking: Ranking, config: SelectionConfig, save: (products: ProductEvidence[]) => Promise): Promise; detail(product: ProductEvidence, config: SelectionConfig, save: (product: ProductEvidence) => Promise): Promise; }