/** * Fluent builder for populating FakeYnabState with test data. */ import type { FakeYnabState } from "./state.js"; export declare class FakeBudgetBuilder { private state; private planId; private readonly accountsMap; private readonly categoryGroupsList; private readonly transactionsMap; private readonly scheduledTransactionsMap; private readonly payeesMap; private readonly monthDetailsMap; private readonly monthCategoriesMap; constructor(state: FakeYnabState, planId: string); withSettings(settings: { name?: string; iso_code?: string; example_format?: string; decimal_digits?: number; decimal_separator?: string; symbol_first?: boolean; group_separator?: string; currency_symbol?: string; display_symbol?: boolean; }): this; withAccount(id: string, data: { name: string; type?: string; on_budget?: boolean; balance?: number; closed?: boolean; }): this; withCategoryGroup(id: string, name: string, categories: Array<{ id: string; name: string; budgeted?: number; activity?: number; balance?: number; hidden?: boolean; } & Record>): this; withPayee(id: string, name: string, transferAccountId?: string | null): this; withTransaction(id: string, data: { account_id: string; amount: number; date?: string; payee_id?: string | null; category_id?: string | null; memo?: string | null; cleared?: "cleared" | "uncleared" | "reconciled"; approved?: boolean; subtransactions?: Array<{ amount: number; category_id?: string | null; memo?: string | null; payee_id?: string | null; }>; }): this; withScheduledTransaction(id: string, data: { account_id: string; amount: number; date_first?: string; date_next?: string; frequency?: string; payee_id?: string | null; category_id?: string | null; memo?: string | null; }): this; withMonth(month: string, data: { income?: number; budgeted?: number; activity?: number; to_be_budgeted?: number; age_of_money?: number | null; }): this; withMonthCategory(month: string, categoryId: string, data: { budgeted?: number; activity?: number; balance?: number; }): this; build(): void; }