/**
 * @fileoverview Update an existing transaction in PocketSmith
 */
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { RequestContext } from "../../../utils/index.js";
export declare const UpdateTransactionInputSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    accessToken: z.ZodOptional<z.ZodString>;
    transactionId: z.ZodNumber;
    payee: z.ZodOptional<z.ZodString>;
    amount: z.ZodOptional<z.ZodNumber>;
    date: z.ZodOptional<z.ZodString>;
    categoryId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodNull]>>;
    note: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNull]>>;
}, "strip", z.ZodTypeAny, {
    transactionId: number;
    apiKey?: string | undefined;
    accessToken?: string | undefined;
    categoryId?: number | null | undefined;
    date?: string | undefined;
    payee?: string | undefined;
    amount?: number | undefined;
    note?: string | null | undefined;
}, {
    transactionId: number;
    apiKey?: string | undefined;
    accessToken?: string | undefined;
    categoryId?: number | null | undefined;
    date?: string | undefined;
    payee?: string | undefined;
    amount?: number | undefined;
    note?: string | null | undefined;
}>;
export type UpdateTransactionInput = z.infer<typeof UpdateTransactionInputSchema>;
export declare const UpdateTransactionResponseSchema: z.ZodObject<{
    transaction: z.ZodObject<{
        id: z.ZodNumber;
        payee: z.ZodString;
        amount: z.ZodNumber;
        date: z.ZodString;
        note: z.ZodNullable<z.ZodString>;
        category: z.ZodOptional<z.ZodObject<{
            id: z.ZodNumber;
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
            id: number;
        }, {
            title: string;
            id: number;
        }>>;
        account: z.ZodObject<{
            id: z.ZodNumber;
            name: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            name: string;
            id: number;
        }, {
            name: string;
            id: number;
        }>;
        currency_code: z.ZodString;
        type: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: string;
        id: number;
        date: string;
        currency_code: string;
        payee: string;
        amount: number;
        note: string | null;
        account: {
            name: string;
            id: number;
        };
        category?: {
            title: string;
            id: number;
        } | undefined;
    }, {
        type: string;
        id: number;
        date: string;
        currency_code: string;
        payee: string;
        amount: number;
        note: string | null;
        account: {
            name: string;
            id: number;
        };
        category?: {
            title: string;
            id: number;
        } | undefined;
    }>;
    changes: z.ZodArray<z.ZodString, "many">;
    success: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    transaction: {
        type: string;
        id: number;
        date: string;
        currency_code: string;
        payee: string;
        amount: number;
        note: string | null;
        account: {
            name: string;
            id: number;
        };
        category?: {
            title: string;
            id: number;
        } | undefined;
    };
    success: boolean;
    changes: string[];
}, {
    transaction: {
        type: string;
        id: number;
        date: string;
        currency_code: string;
        payee: string;
        amount: number;
        note: string | null;
        account: {
            name: string;
            id: number;
        };
        category?: {
            title: string;
            id: number;
        } | undefined;
    };
    success: boolean;
    changes: string[];
}>;
export type UpdateTransactionResponse = z.infer<typeof UpdateTransactionResponseSchema>;
export declare function updateTransactionLogic(params: UpdateTransactionInput, context: RequestContext): Promise<UpdateTransactionResponse>;
export declare const registerUpdateTransactionTool: (server: McpServer) => Promise<void>;
