import { DoshaAnalytics } from '../../analytics'; import { SupabaseClient } from '@supabase/supabase-js'; import { ResolvedPlace, DoshaCalculationResult, BirthDetails } from '../../types/dosha-api'; export interface DoshaFormValues { name: string; gender: 'male' | 'female' | ''; problems: string[]; otherProblemText?: string; dateOfBirth: string; birthTime: string; birthTimeUnknown: boolean; birthPlace: string; } export interface DoshaFormSectionProps { t: (key: string) => string; className?: string; /** Pre-fill the form with these values (e.g. when returning from results to edit) */ initialValues?: Partial; /** Called with the latest form values whenever any field changes */ onValuesChange?: (values: DoshaFormValues) => void; /** Called when required form fields become valid or invalid */ onFormValidityChange?: (isValid: boolean) => void; /** Supabase client for submission (when set, footer CTA will submit) */ supabase?: SupabaseClient | null; /** Resolve place string to lat, lon, tz (optional fallback for dev/testing when googleMapsApiKey not provided) */ resolvePlace?: (place: string) => Promise; /** Google Maps API key for place autocomplete and timezone resolution (required for form submission) */ googleMapsApiKey?: string; /** Called with result on successful calculation. Second arg is birth details for Kundali chart when available. */ onResult?: (result: DoshaCalculationResult, birthDetails?: BirthDetails) => void; /** Called with error message on failure */ onError?: (error: string) => void; /** Called when submit starts/finishes */ onLoadingChange?: (loading: boolean) => void; /** Optional analytics implementation for tracking field interactions */ analytics?: DoshaAnalytics; } export interface DoshaFormSectionRef { submit: () => Promise; } export declare const DoshaFormSection: import('react').ForwardRefExoticComponent>;