export interface GrowthFunnelOptions { codexHome?: string; from?: string; to?: string; windowDays?: number; now?: Date; } export interface GrowthFunnelStep { step_id: "install" | "start" | "first_command" | "week1_retention"; users: number; conversion_from_previous: number | null; conversion_from_install: number | null; notes?: string; } export interface GrowthFunnelReport { generated_at: string; window: { from: string; to: string; days: number; }; events: { total: number; by_name: Record; }; actors: { install: number; start: number; first_command: number; week1_retained: number; week1_eligible_starts: number; }; steps: GrowthFunnelStep[]; } export type GrowthExperimentStatus = "planned" | "running" | "completed" | "won" | "lost"; export interface GrowthExperiment { id: string; title: string; status: GrowthExperimentStatus; hypothesis: string; primary_metric: string; start_date: string; end_date?: string; result_summary?: string; } export interface GrowthExperimentReport { source_path: string; total: number; running: number; completed: number; winners: number; experiments: GrowthExperiment[]; } export type GrowthGateStatus = "pass" | "warn" | "fail"; export interface GrowthGateCheck { id: string; title: string; status: GrowthGateStatus; details: string[]; } export interface GrowthGateOptions { projectRoot?: string; experimentsFile?: string; minExperiments?: number; strict?: boolean; } export interface GrowthGateReport { ok: boolean; strict: boolean; score: number; checks: GrowthGateCheck[]; experiments: { source_path: string; total: number; running: number; completed: number; winners: number; active_cycle: number; }; } export declare function buildGrowthFunnelReport(options?: GrowthFunnelOptions): Promise; export declare function loadGrowthExperiments(projectRoot?: string, filePath?: string): Promise; export declare function evaluateGrowthGate(options?: GrowthGateOptions): Promise; export declare function renderGrowthDashboardMarkdown(funnel: GrowthFunnelReport, experiments: GrowthExperimentReport): string;