export type { Account, Transaction, Category, CategoryGroup, Payee } from './core/types/domain.js';
import { z } from 'zod';
import { Tool } from '@modelcontextprotocol/sdk/types.js';
export type ToolInput = Tool['inputSchema'];
export interface BudgetFile {
    id?: string;
    cloudFileId?: string;
    name: string;
}
export declare const GetTransactionsArgsSchema: z.ZodObject<{
    accountId: z.ZodString;
    startDate: z.ZodOptional<z.ZodString>;
    endDate: z.ZodOptional<z.ZodString>;
    minAmount: z.ZodOptional<z.ZodNumber>;
    maxAmount: z.ZodOptional<z.ZodNumber>;
    categoryName: z.ZodOptional<z.ZodString>;
    payeeName: z.ZodOptional<z.ZodString>;
    limit: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type GetTransactionsArgs = z.infer<typeof GetTransactionsArgsSchema>;
export declare const SpendingByCategoryArgsSchema: z.ZodObject<{
    startDate: z.ZodOptional<z.ZodString>;
    endDate: z.ZodOptional<z.ZodString>;
    accountId: z.ZodOptional<z.ZodString>;
    includeIncome: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type SpendingByCategoryArgs = z.infer<typeof SpendingByCategoryArgsSchema>;
export declare const MonthlySummaryArgsSchema: z.ZodObject<{
    months: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    accountId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type MonthlySummaryArgs = z.infer<typeof MonthlySummaryArgsSchema>;
export declare const BalanceHistoryArgsSchema: z.ZodObject<{
    accountId: z.ZodString;
    includeOffBudget: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    months: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, z.core.$strip>;
export type BalanceHistoryArgs = z.infer<typeof BalanceHistoryArgsSchema>;
export declare const FinancialInsightsArgsSchema: z.ZodObject<{
    startDate: z.ZodOptional<z.ZodString>;
    endDate: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type FinancialInsightsArgs = z.infer<typeof FinancialInsightsArgsSchema>;
export declare const BudgetReviewArgsSchema: z.ZodObject<{
    months: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, z.core.$strip>;
export type BudgetReviewArgs = z.infer<typeof BudgetReviewArgsSchema>;
export declare const UpdateSubtransactionSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    amount: z.ZodNumber;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type UpdateSubtransaction = z.infer<typeof UpdateSubtransactionSchema>;
export declare const UpdateTransactionArgsSchema: z.ZodObject<{
    id: z.ZodString;
    account: z.ZodOptional<z.ZodString>;
    date: z.ZodOptional<z.ZodString>;
    amount: z.ZodOptional<z.ZodNumber>;
    payee: z.ZodOptional<z.ZodString>;
    payee_name: z.ZodOptional<z.ZodString>;
    imported_payee: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
    imported_id: z.ZodOptional<z.ZodString>;
    cleared: z.ZodOptional<z.ZodBoolean>;
    subtransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        amount: z.ZodNumber;
        category: z.ZodOptional<z.ZodString>;
        notes: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type UpdateTransactionArgs = z.infer<typeof UpdateTransactionArgsSchema>;
export declare const UpdateTransactionDataSchema: z.ZodObject<{
    amount: z.ZodOptional<z.ZodNumber>;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
    account: z.ZodOptional<z.ZodString>;
    date: z.ZodOptional<z.ZodString>;
    payee: z.ZodOptional<z.ZodString>;
    payee_name: z.ZodOptional<z.ZodString>;
    imported_payee: z.ZodOptional<z.ZodString>;
    imported_id: z.ZodOptional<z.ZodString>;
    cleared: z.ZodOptional<z.ZodBoolean>;
    subtransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        amount: z.ZodNumber;
        category: z.ZodOptional<z.ZodString>;
        notes: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type UpdateTransactionData = z.infer<typeof UpdateTransactionDataSchema>;
export declare const SubtransactionSchema: z.ZodObject<{
    amount: z.ZodNumber;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type Subtransaction = z.infer<typeof SubtransactionSchema>;
export declare const CreateTransactionArgsSchema: z.ZodObject<{
    account: z.ZodString;
    date: z.ZodString;
    amount: z.ZodNumber;
    payee: z.ZodOptional<z.ZodString>;
    payee_name: z.ZodOptional<z.ZodString>;
    imported_payee: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
    imported_id: z.ZodOptional<z.ZodString>;
    transfer_id: z.ZodOptional<z.ZodString>;
    transfer_account_id: z.ZodOptional<z.ZodString>;
    cleared: z.ZodOptional<z.ZodBoolean>;
    subtransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        amount: z.ZodNumber;
        category: z.ZodOptional<z.ZodString>;
        notes: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type CreateTransactionArgs = z.infer<typeof CreateTransactionArgsSchema>;
export declare const TransactionDataSchema: z.ZodObject<{
    amount: z.ZodNumber;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
    date: z.ZodString;
    payee: z.ZodOptional<z.ZodString>;
    payee_name: z.ZodOptional<z.ZodString>;
    imported_payee: z.ZodOptional<z.ZodString>;
    imported_id: z.ZodOptional<z.ZodString>;
    cleared: z.ZodOptional<z.ZodBoolean>;
    subtransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        amount: z.ZodNumber;
        category: z.ZodOptional<z.ZodString>;
        notes: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    transfer_id: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type TransactionData = z.infer<typeof TransactionDataSchema>;
export declare const ImportSubtransactionSchema: z.ZodObject<{
    amount: z.ZodNumber;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const ImportTransactionItemSchema: z.ZodObject<{
    date: z.ZodString;
    amount: z.ZodNumber;
    payee: z.ZodOptional<z.ZodString>;
    payee_name: z.ZodOptional<z.ZodString>;
    imported_payee: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
    imported_id: z.ZodOptional<z.ZodString>;
    transfer_id: z.ZodOptional<z.ZodString>;
    cleared: z.ZodOptional<z.ZodBoolean>;
    subtransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        amount: z.ZodNumber;
        category: z.ZodOptional<z.ZodString>;
        notes: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type ImportTransactionItem = z.infer<typeof ImportTransactionItemSchema>;
export declare const ImportTransactionsArgsSchema: z.ZodObject<{
    accountId: z.ZodString;
    transactions: z.ZodArray<z.ZodObject<{
        date: z.ZodString;
        amount: z.ZodNumber;
        payee: z.ZodOptional<z.ZodString>;
        payee_name: z.ZodOptional<z.ZodString>;
        imported_payee: z.ZodOptional<z.ZodString>;
        category: z.ZodOptional<z.ZodString>;
        notes: z.ZodOptional<z.ZodString>;
        imported_id: z.ZodOptional<z.ZodString>;
        transfer_id: z.ZodOptional<z.ZodString>;
        cleared: z.ZodOptional<z.ZodBoolean>;
        subtransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
            amount: z.ZodNumber;
            category: z.ZodOptional<z.ZodString>;
            notes: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
    defaultCleared: z.ZodOptional<z.ZodBoolean>;
    dryRun: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type ImportTransactionsArgs = z.infer<typeof ImportTransactionsArgsSchema>;
export interface CategoryGroupInfo {
    id: string;
    name: string;
    isIncome: boolean;
    isSavingsOrInvestment: boolean;
}
export interface CategorySpending {
    name: string;
    group: string;
    isIncome: boolean;
    total: number;
    transactions: number;
}
export interface GroupSpending {
    name: string;
    total: number;
    categories: CategorySpending[];
}
export interface MonthData {
    year: number;
    month: number;
    income: number;
    expenses: number;
    investments: number;
    transactions: number;
}
export interface MonthBalance {
    year: number;
    month: number;
    balance: number;
    transactions: number;
}
//# sourceMappingURL=types.d.ts.map