/** * @fileoverview Search itemized individual contributions (Schedule A) or get * aggregate breakdowns by size, state, employer, or occupation. Central tool * for answering "who's funding this candidate/committee?" * @module mcp-server/tools/definitions/search-contributions.tool */ import { z } from '@cyanheads/mcp-ts-core'; import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors'; export declare const searchContributions: import("@cyanheads/mcp-ts-core").ToolDefinition>; committee_id: z.ZodOptional; candidate_id: z.ZodOptional; contributor_name: z.ZodOptional; contributor_employer: z.ZodOptional; contributor_occupation: z.ZodOptional; contributor_city: z.ZodOptional; contributor_state: z.ZodOptional; contributor_zip: z.ZodOptional; cycle: z.ZodOptional; min_date: z.ZodOptional; max_date: z.ZodOptional; min_amount: z.ZodOptional; max_amount: z.ZodOptional; is_individual: z.ZodOptional; sort: z.ZodOptional>; page: z.ZodDefault; per_page: z.ZodDefault; cursor: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ results: z.ZodArray>; mode: z.ZodEnum<{ by_employer: "by_employer"; by_occupation: "by_occupation"; by_size: "by_size"; by_size_candidate: "by_size_candidate"; by_state: "by_state"; by_state_candidate: "by_state_candidate"; itemized: "itemized"; }>; committee: z.ZodOptional>; next_cursor: z.ZodOptional>; count: z.ZodOptional; pagination: z.ZodOptional>; search_criteria: z.ZodObject<{}, z.core.$loose>; }, z.core.$strip>, readonly [{ readonly reason: "itemized_requires_committee_id"; readonly code: JsonRpcErrorCode.ValidationError; readonly when: "Itemized mode invoked without a committee_id"; readonly recovery: "Provide a committee_id, switch to a by_size or by_state aggregate mode with candidate_id, or look up the candidate's committee with openfec_search_committees."; }, { readonly reason: "aggregate_requires_committee_id"; readonly code: JsonRpcErrorCode.ValidationError; readonly when: "by_employer or by_occupation aggregate without a committee_id"; readonly recovery: "These aggregates roll up to a single committee — provide a committee_id for the spending committee."; }, { readonly reason: "itemized_only_filters_in_aggregate_mode"; readonly code: JsonRpcErrorCode.ValidationError; readonly when: "An itemized-only filter was supplied alongside an aggregate mode, which cannot apply it"; readonly recovery: "Re-run with mode \"itemized\" (requires committee_id) to filter by contributor, date range, or amount, or drop the named inputs to keep the aggregate. Aggregate modes accept only committee_id, candidate_id, cycle, mode, page, per_page."; }], { readonly totalCount: z.ZodNumber; readonly notice: z.ZodOptional; }>; //# sourceMappingURL=search-contributions.tool.d.ts.map