| |
|
| |
|
| | declare const google: { |
| | accounts: { |
| | id: { |
| | initialize: (config: { client_id: string; callback: (response: any) => void; }) => void; |
| | renderButton: ( |
| | parent: HTMLElement, |
| | options: { theme?: string; size?: string; type?: string; text?: string, width?: string, logo_alignment?: string } |
| | ) => void; |
| | prompt: (notification?: any) => void; |
| | disableAutoSelect: () => void; |
| | }; |
| | }; |
| | }; |
| |
|
| | declare global { |
| | interface Window { |
| | google: typeof google; |
| | } |
| | } |
| |
|
| |
|
| | export enum AppStatus { |
| | IDLE = 'IDLE', |
| | ANALYZING = 'ANALYZING', |
| | SUCCESS = 'SUCCESS', |
| | ERROR = 'ERROR', |
| | } |
| |
|
| | export type View = 'steward' | 'pests' | 'seasons' | 'tools' | 'garden' | 'healthCheck' | 'designStudio' | 'speciesIdentifier' | 'wiringGuide' | 'soilAnalyzer' | 'nebariDeveloper' | 'potCalculator' | 'sunTracker' | 'fertilizerMixer' | 'soilVolumeCalculator' | 'weatherShield' | 'settings'; |
| |
|
| | export interface UserProfile { |
| | id: string; |
| | name: string; |
| | email: string; |
| | picture: string; |
| | } |
| |
|
| |
|
| | export enum LogTag { |
| | Pruning = 'Pruning', |
| | Watering = 'Watering', |
| | Fertilizing = 'Fertilizing', |
| | Repotting = 'Repotting', |
| | Wiring = 'Wiring', |
| | PestControl = 'Pest Control', |
| | DiseaseControl = 'Disease Control', |
| | Observation = 'Observation', |
| | Styling = 'Styling', |
| | NewGrowth = 'New Growth', |
| | HealthDiagnosis = 'Health Diagnosis', |
| | } |
| |
|
| | export interface HealthCheckResult { |
| | probableCause: string; |
| | confidence: 'High' | 'Medium' | 'Low'; |
| | explanation: string; |
| | isPest: boolean; |
| | isDisease: boolean; |
| | treatmentPlan: { |
| | step: number; |
| | action: string; |
| | details: string; |
| | }[]; |
| | organicAlternatives: string; |
| | preventativeMeasures: string; |
| | } |
| |
|
| |
|
| | export interface DiaryAIAnalysis { |
| | summary: string; |
| | healthChange?: number; |
| | suggestions?: string[]; |
| | } |
| |
|
| | export interface DiaryLog { |
| | id: string; |
| | date: string; |
| | title: string; |
| | notes: string; |
| | photos: string[]; |
| | tags: LogTag[]; |
| | aiAnalysis?: DiaryAIAnalysis; |
| | healthCheckResult?: HealthCheckResult; |
| | } |
| |
|
| | export interface ProtectionProfile { |
| | minTempC: number; |
| | maxTempC: number; |
| | maxWindKph: number; |
| | alertsEnabled: boolean; |
| | } |
| |
|
| | export interface BonsaiTree { |
| | id: string; |
| | name: string; |
| | species: string; |
| | acquiredDate: string; |
| | source: string; |
| | location: string; |
| | initialPhoto: string; |
| | notes?: string; |
| | logs: DiaryLog[]; |
| | analysisHistory: { date: string; analysis: BonsaiAnalysis }[]; |
| | protectionProfile?: ProtectionProfile; |
| | } |
| |
|
| | export interface CareTask { |
| | week: number; |
| | task: string; |
| | details: string; |
| | toolsNeeded?: string[]; |
| | } |
| |
|
| | export interface PestAlert { |
| | pestOrDisease: string; |
| | symptoms:string; |
| | treatment: string; |
| | severity: 'Low' | 'Medium' | 'High'; |
| | } |
| |
|
| | export interface StylingSuggestion { |
| | technique: 'Pruning' | 'Wiring' | 'Shaping'; |
| | description: string; |
| | area: string; |
| | } |
| |
|
| | export interface EnvironmentalFactors { |
| | idealLight: string; |
| | idealHumidity: string; |
| | temperatureRange: string; |
| | } |
| |
|
| | export interface WateringAnalysis { |
| | frequency: string; |
| | method: string; |
| | notes: string; |
| | } |
| |
|
| | export interface FertilizerRec { |
| | phase: 'Spring Growth' | 'Summer Maintenance' | 'Autumn Preparation' | 'Winter Dormancy'; |
| | type: string; |
| | frequency: string; |
| | notes: string; |
| | } |
| |
|
| | export interface SoilRecipeComponent { |
| | name: 'Akadama' | 'Pumice' | 'Lava Rock' | 'Organic Compost' | 'Kiryu' | 'Other'; |
| | percentage: number; |
| | notes: string; |
| | } |
| |
|
| | export interface SoilRecipe { |
| | components: SoilRecipeComponent[]; |
| | rationale: string; |
| | } |
| |
|
| | export interface PotSuggestion { |
| | style: string; |
| | size: string; |
| | colorPalette: string; |
| | rationale:string; |
| | } |
| |
|
| | export interface SeasonalTask { |
| | task: string; |
| | importance: 'High' | 'Medium' | 'Low'; |
| | } |
| |
|
| | export interface SeasonalGuide { |
| | season: 'Spring' | 'Summer' | 'Autumn' | 'Winter'; |
| | summary: string; |
| | tasks: SeasonalTask[]; |
| | } |
| |
|
| | export interface DiagnosticIssue { |
| | issue: string; |
| | confidence: 'High' | 'Medium' | 'Low'; |
| | symptoms: string; |
| | solution: string; |
| | } |
| |
|
| | export interface PestLibraryEntry { |
| | name: string; |
| | type: 'Pest' | 'Disease'; |
| | description: string; |
| | symptoms: string[]; |
| | treatment: { |
| | organic: string; |
| | chemical: string; |
| | }; |
| | } |
| |
|
| | export interface ToolRecommendation { |
| | name: string; |
| | category: 'Cutting' | 'Wiring' | 'Repotting' | 'General Care'; |
| | description: string; |
| | level: 'Essential' | 'Recommended' | 'Advanced'; |
| | } |
| |
|
| | export enum ToolCondition { |
| | EXCELLENT = 'Excellent', |
| | GOOD = 'Good', |
| | NEEDS_SHARPENING = 'Needs Sharpening', |
| | NEEDS_OILING = 'Needs Oiling', |
| | DAMAGED = 'Damaged' |
| | } |
| |
|
| | export interface UserTool extends ToolRecommendation { |
| | id: string; |
| | condition: ToolCondition; |
| | lastMaintained?: string; |
| | notes?: string; |
| | } |
| |
|
| | export interface MaintenanceTips { |
| | sharpening: string; |
| | cleaning: string; |
| | storage: string; |
| | } |
| |
|
| | export interface BonsaiAnalysis { |
| | species: string; |
| | healthAssessment: { |
| | overallHealth: string; |
| | healthScore: number; |
| | observations: string[]; |
| | foliageHealth: string; |
| | trunkAndNebariHealth: string; |
| | potAndSoilHealth: string; |
| | }; |
| | careSchedule: CareTask[]; |
| | pestAndDiseaseAlerts: PestAlert[]; |
| | stylingSuggestions: StylingSuggestion[]; |
| | environmentalFactors: EnvironmentalFactors; |
| | wateringAnalysis: WateringAnalysis; |
| | knowledgeNuggets: string[]; |
| | estimatedAge: string; |
| | fertilizerRecommendations: FertilizerRec[]; |
| | soilRecipe: SoilRecipe; |
| | potSuggestion: PotSuggestion; |
| | seasonalGuide: SeasonalGuide[]; |
| | diagnostics: DiagnosticIssue[]; |
| | pestLibrary: PestLibraryEntry[]; |
| | toolRecommendations: ToolRecommendation[]; |
| | } |
| |
|
| | export interface SpeciesIdentification { |
| | commonName: string; |
| | scientificName: string; |
| | confidence: string; |
| | reasoning: string; |
| | generalCareSummary: string; |
| | } |
| |
|
| | export interface SpeciesIdentificationResult { |
| | identifications: SpeciesIdentification[]; |
| | } |
| |
|
| | export interface SoilAnalysisComponent { |
| | name: 'Akadama' | 'Pumice' | 'Lava Rock' | 'Organic Compost' | 'Kiryu' | 'Pine Bark' | 'Diatomaceous Earth' | 'Sand' | 'Grit' | 'Other'; |
| | percentage: number; |
| | } |
| |
|
| | export interface SoilAnalysis { |
| | components: SoilAnalysisComponent[]; |
| | drainageRating: 'Poor' | 'Average' | 'Good' | 'Excellent'; |
| | waterRetention: 'Low' | 'Medium' | 'High'; |
| | suitabilityAnalysis: string; |
| | improvementSuggestions: string; |
| | } |
| |
|
| |
|
| | |
| |
|
| | export interface SvgPoint { |
| | x: number; |
| | y: number; |
| | } |
| |
|
| | export enum AnnotationType { |
| | PruneLine = 'PRUNE_LINE', |
| | WireDirection = 'WIRE_DIRECTION', |
| | RemoveBranch = 'REMOVE_BRANCH', |
| | FoliageRefinement = 'FOLIAGE_REFINEMENT', |
| | JinShari = 'JIN_SHARI', |
| | TrunkLine = 'TRUNK_LINE', |
| | ExposeRoot = 'EXPOSE_ROOT', |
| | } |
| |
|
| | export interface StylingAnnotation { |
| | type: AnnotationType; |
| | points?: SvgPoint[]; |
| | path?: string; |
| | label: string; |
| | } |
| |
|
| | export interface StylingBlueprint { |
| | annotations: StylingAnnotation[]; |
| | summary: string; |
| | |
| | |
| | canvas: { |
| | width: number; |
| | height: number; |
| | }; |
| | } |