/**
 * @fileoverview Get budget summary with period analysis from PocketSmith
 */
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { RequestContext } from "../../../utils/index.js";
export declare const GetBudgetSummaryInputSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    accessToken: z.ZodOptional<z.ZodString>;
    period: z.ZodEnum<["weeks", "months", "years"]>;
    interval: z.ZodNumber;
    startDate: z.ZodString;
    endDate: z.ZodString;
}, "strip", z.ZodTypeAny, {
    startDate: string;
    endDate: string;
    period: "weeks" | "months" | "years";
    interval: number;
    apiKey?: string | undefined;
    accessToken?: string | undefined;
}, {
    startDate: string;
    endDate: string;
    period: "weeks" | "months" | "years";
    interval: number;
    apiKey?: string | undefined;
    accessToken?: string | undefined;
}>;
export type GetBudgetSummaryInput = z.infer<typeof GetBudgetSummaryInputSchema>;
export declare const GetBudgetSummaryResponseSchema: z.ZodObject<{
    budgetSummary: z.ZodArray<z.ZodObject<{
        category: z.ZodObject<{
            id: z.ZodNumber;
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
            id: number;
        }, {
            title: string;
            id: number;
        }>;
        periods: z.ZodArray<z.ZodObject<{
            period_label: z.ZodString;
            budget_amount: z.ZodNumber;
            actual_amount: z.ZodNumber;
            difference: z.ZodNumber;
            percentage_used: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            difference: number;
            period_label: string;
            budget_amount: number;
            actual_amount: number;
            percentage_used: number;
        }, {
            difference: number;
            period_label: string;
            budget_amount: number;
            actual_amount: number;
            percentage_used: number;
        }>, "many">;
        overall: z.ZodObject<{
            total_budget: z.ZodNumber;
            total_actual: z.ZodNumber;
            total_difference: z.ZodNumber;
            average_percentage: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            total_budget: number;
            total_actual: number;
            total_difference: number;
            average_percentage: number;
        }, {
            total_budget: number;
            total_actual: number;
            total_difference: number;
            average_percentage: number;
        }>;
    }, "strip", z.ZodTypeAny, {
        category: {
            title: string;
            id: number;
        };
        periods: {
            difference: number;
            period_label: string;
            budget_amount: number;
            actual_amount: number;
            percentage_used: number;
        }[];
        overall: {
            total_budget: number;
            total_actual: number;
            total_difference: number;
            average_percentage: number;
        };
    }, {
        category: {
            title: string;
            id: number;
        };
        periods: {
            difference: number;
            period_label: string;
            budget_amount: number;
            actual_amount: number;
            percentage_used: number;
        }[];
        overall: {
            total_budget: number;
            total_actual: number;
            total_difference: number;
            average_percentage: number;
        };
    }>, "many">;
    summary: z.ZodObject<{
        analysis_period: z.ZodString;
        total_periods: z.ZodNumber;
        overall_budget: z.ZodNumber;
        overall_actual: z.ZodNumber;
        overall_difference: z.ZodNumber;
        overall_percentage: z.ZodNumber;
        categories_over_budget: z.ZodNumber;
        categories_under_budget: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        analysis_period: string;
        total_periods: number;
        overall_budget: number;
        overall_actual: number;
        overall_difference: number;
        overall_percentage: number;
        categories_over_budget: number;
        categories_under_budget: number;
    }, {
        analysis_period: string;
        total_periods: number;
        overall_budget: number;
        overall_actual: number;
        overall_difference: number;
        overall_percentage: number;
        categories_over_budget: number;
        categories_under_budget: number;
    }>;
}, "strip", z.ZodTypeAny, {
    summary: {
        analysis_period: string;
        total_periods: number;
        overall_budget: number;
        overall_actual: number;
        overall_difference: number;
        overall_percentage: number;
        categories_over_budget: number;
        categories_under_budget: number;
    };
    budgetSummary: {
        category: {
            title: string;
            id: number;
        };
        periods: {
            difference: number;
            period_label: string;
            budget_amount: number;
            actual_amount: number;
            percentage_used: number;
        }[];
        overall: {
            total_budget: number;
            total_actual: number;
            total_difference: number;
            average_percentage: number;
        };
    }[];
}, {
    summary: {
        analysis_period: string;
        total_periods: number;
        overall_budget: number;
        overall_actual: number;
        overall_difference: number;
        overall_percentage: number;
        categories_over_budget: number;
        categories_under_budget: number;
    };
    budgetSummary: {
        category: {
            title: string;
            id: number;
        };
        periods: {
            difference: number;
            period_label: string;
            budget_amount: number;
            actual_amount: number;
            percentage_used: number;
        }[];
        overall: {
            total_budget: number;
            total_actual: number;
            total_difference: number;
            average_percentage: number;
        };
    }[];
}>;
export type GetBudgetSummaryResponse = z.infer<typeof GetBudgetSummaryResponseSchema>;
export declare function getBudgetSummaryLogic(params: GetBudgetSummaryInput, context: RequestContext): Promise<GetBudgetSummaryResponse>;
export declare const registerGetBudgetSummaryTool: (server: McpServer) => Promise<void>;
