/**
 * @fileoverview Get comprehensive user financial summary from PocketSmith
 */
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { RequestContext } from "../../../utils/index.js";
export declare const GetUserSummaryInputSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    accessToken: z.ZodOptional<z.ZodString>;
    includeRecentTransactions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    transactionLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
    includeRecentTransactions: boolean;
    transactionLimit: number;
    apiKey?: string | undefined;
    accessToken?: string | undefined;
}, {
    apiKey?: string | undefined;
    accessToken?: string | undefined;
    includeRecentTransactions?: boolean | undefined;
    transactionLimit?: number | undefined;
}>;
export type GetUserSummaryInput = z.infer<typeof GetUserSummaryInputSchema>;
export declare const GetUserSummaryResponseSchema: z.ZodObject<{
    user: z.ZodObject<{
        id: z.ZodNumber;
        name: z.ZodString;
        email: z.ZodString;
        base_currency_code: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        id: number;
        email: string;
        base_currency_code?: string | undefined;
    }, {
        name: string;
        id: number;
        email: string;
        base_currency_code?: string | undefined;
    }>;
    financialSummary: z.ZodObject<{
        totalBalance: z.ZodNumber;
        totalAccounts: z.ZodNumber;
        accountsByType: z.ZodRecord<z.ZodString, z.ZodNumber>;
        netWorth: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        totalBalance: number;
        totalAccounts: number;
        accountsByType: Record<string, number>;
        netWorth: number;
    }, {
        totalBalance: number;
        totalAccounts: number;
        accountsByType: Record<string, number>;
        netWorth: number;
    }>;
    recentTransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodNumber;
        payee: z.ZodString;
        amount: z.ZodNumber;
        date: z.ZodString;
        account: z.ZodString;
        category: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: number;
        date: string;
        payee: string;
        amount: number;
        account: string;
        category?: string | undefined;
    }, {
        id: number;
        date: string;
        payee: string;
        amount: number;
        account: string;
        category?: string | undefined;
    }>, "many">>;
    budgetHighlights: z.ZodOptional<z.ZodObject<{
        categoriesTracked: z.ZodNumber;
        overBudgetCategories: z.ZodNumber;
        totalBudgetVariance: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        categoriesTracked: number;
        overBudgetCategories: number;
        totalBudgetVariance: number;
    }, {
        categoriesTracked: number;
        overBudgetCategories: number;
        totalBudgetVariance: number;
    }>>;
    categoryBreakdown: z.ZodArray<z.ZodObject<{
        category: z.ZodString;
        count: z.ZodNumber;
        isTransfer: z.ZodBoolean;
        isBill: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        category: string;
        isBill: boolean;
        isTransfer: boolean;
        count: number;
    }, {
        category: string;
        isBill: boolean;
        isTransfer: boolean;
        count: number;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    user: {
        name: string;
        id: number;
        email: string;
        base_currency_code?: string | undefined;
    };
    financialSummary: {
        totalBalance: number;
        totalAccounts: number;
        accountsByType: Record<string, number>;
        netWorth: number;
    };
    categoryBreakdown: {
        category: string;
        isBill: boolean;
        isTransfer: boolean;
        count: number;
    }[];
    recentTransactions?: {
        id: number;
        date: string;
        payee: string;
        amount: number;
        account: string;
        category?: string | undefined;
    }[] | undefined;
    budgetHighlights?: {
        categoriesTracked: number;
        overBudgetCategories: number;
        totalBudgetVariance: number;
    } | undefined;
}, {
    user: {
        name: string;
        id: number;
        email: string;
        base_currency_code?: string | undefined;
    };
    financialSummary: {
        totalBalance: number;
        totalAccounts: number;
        accountsByType: Record<string, number>;
        netWorth: number;
    };
    categoryBreakdown: {
        category: string;
        isBill: boolean;
        isTransfer: boolean;
        count: number;
    }[];
    recentTransactions?: {
        id: number;
        date: string;
        payee: string;
        amount: number;
        account: string;
        category?: string | undefined;
    }[] | undefined;
    budgetHighlights?: {
        categoriesTracked: number;
        overBudgetCategories: number;
        totalBudgetVariance: number;
    } | undefined;
}>;
export type GetUserSummaryResponse = z.infer<typeof GetUserSummaryResponseSchema>;
export declare function getUserSummaryLogic(params: GetUserSummaryInput, context: RequestContext): Promise<GetUserSummaryResponse>;
export declare const registerGetUserSummaryTool: (server: McpServer) => Promise<void>;
