|
|
|
|
|
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; |
|
}; |
|
} |