import type { PayeeProfile } from "./payee-profiles.js"; export interface TargetTransaction { id: string; date: string; amount: number; payee_id: string | null; payee_name: string | null; category_id: string | null; category_name: string | null; memo: string | null; approved: boolean; } export interface FlatCategory { id: string; name: string; group_id: string; group_name: string; } export interface ScheduledTransactionMatch { scheduled_transaction_id: string; category_id: string; category_name: string | null; amount: number; frequency: string; } export interface CategorizationSignals { payee_history: Record | null; payee_history_dominant: string | null; payee_history_confidence: number | null; scheduled_match: ScheduledTransactionMatch | null; ynab_existing: { category_id: string; category_name: string | null; } | null; similar_payees: Array<{ payee_name: string; similarity: number; dominant_category: string | null; dominant_category_name: string | null; }> | null; } type ConfidenceTier = "definitive" | "high" | "medium" | "low"; export interface CategorizationSuggestion { transaction_id: string; date: string; payee_name: string | null; amount: number; memo: string | null; current_category_id: string | null; current_category_name: string | null; suggested_category_id: string; suggested_category_name: string | null; confidence: ConfidenceTier; method: string; reasoning: string; signals: CategorizationSignals; } interface ScheduledTxLike { id: string; payee_id: string | null; category_id: string | null; amount: number; frequency: string; } export declare function analyzeTransactions(targets: TargetTransaction[], profiles: Map, scheduledTransactions: ScheduledTxLike[], categories: FlatCategory[], allPayeeNames: Map): CategorizationSuggestion[]; export declare function normalizePayeeName(name: string): string; export declare function tokenSimilarity(a: string, b: string): number; interface SimilarPayeeMatch { profile: PayeeProfile; similarity: number; } export declare function findSimilarPayees(targetName: string, allPayeeNames: Map, profiles: Map, maxResults: number): SimilarPayeeMatch[]; export {};