/**
 * @fileoverview Update an existing category in PocketSmith
 */
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { RequestContext } from "../../../utils/index.js";
export declare const UpdateCategoryInputSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    accessToken: z.ZodOptional<z.ZodString>;
    categoryId: z.ZodNumber;
    title: z.ZodOptional<z.ZodString>;
    colour: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNull]>>;
    parentId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodNull]>>;
    isBill: z.ZodOptional<z.ZodBoolean>;
    isTransfer: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    categoryId: number;
    apiKey?: string | undefined;
    title?: string | undefined;
    accessToken?: string | undefined;
    colour?: string | null | undefined;
    parentId?: number | null | undefined;
    isBill?: boolean | undefined;
    isTransfer?: boolean | undefined;
}, {
    categoryId: number;
    apiKey?: string | undefined;
    title?: string | undefined;
    accessToken?: string | undefined;
    colour?: string | null | undefined;
    parentId?: number | null | undefined;
    isBill?: boolean | undefined;
    isTransfer?: boolean | undefined;
}>;
export type UpdateCategoryInput = z.infer<typeof UpdateCategoryInputSchema>;
export declare const UpdateCategoryResponseSchema: z.ZodObject<{
    category: z.ZodObject<{
        id: z.ZodNumber;
        title: z.ZodString;
        colour: z.ZodUnion<[z.ZodString, z.ZodNull]>;
        is_bill: z.ZodBoolean;
        is_transfer: z.ZodBoolean;
        parent_id: z.ZodUnion<[z.ZodNumber, z.ZodNull]>;
        updated_at: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNull]>>;
    }, "strip", z.ZodTypeAny, {
        title: string;
        id: number;
        colour: string | null;
        is_bill: boolean;
        is_transfer: boolean;
        parent_id: number | null;
        updated_at?: string | null | undefined;
    }, {
        title: string;
        id: number;
        colour: string | null;
        is_bill: boolean;
        is_transfer: boolean;
        parent_id: number | null;
        updated_at?: string | null | undefined;
    }>;
    changes: z.ZodArray<z.ZodString, "many">;
    success: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    category: {
        title: string;
        id: number;
        colour: string | null;
        is_bill: boolean;
        is_transfer: boolean;
        parent_id: number | null;
        updated_at?: string | null | undefined;
    };
    success: boolean;
    changes: string[];
}, {
    category: {
        title: string;
        id: number;
        colour: string | null;
        is_bill: boolean;
        is_transfer: boolean;
        parent_id: number | null;
        updated_at?: string | null | undefined;
    };
    success: boolean;
    changes: string[];
}>;
export type UpdateCategoryResponse = z.infer<typeof UpdateCategoryResponseSchema>;
export declare function updateCategoryLogic(params: UpdateCategoryInput, context: RequestContext): Promise<UpdateCategoryResponse>;
export declare const registerUpdateCategoryTool: (server: McpServer) => Promise<void>;
