/** * @fileoverview Barrel export for all tool definitions. * @module src/mcp-server/tools/definitions/index */ export { getCommitteeTotals } from './get-committee-totals.tool.js'; export { getLegalDocument } from './get-legal-document.tool.js'; export { lookupCalendar } from './lookup-calendar.tool.js'; export { lookupElections } from './lookup-elections.tool.js'; export { searchCandidates } from './search-candidates.tool.js'; export { searchCommittees } from './search-committees.tool.js'; export { searchContributions } from './search-contributions.tool.js'; export { searchCoordinatedExpenditures } from './search-coordinated-expenditures.tool.js'; export { searchDisbursements } from './search-disbursements.tool.js'; export { searchExpenditures } from './search-expenditures.tool.js'; export { searchFilings } from './search-filings.tool.js'; export { searchLegal } from './search-legal.tool.js'; export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition>; state: import("zod").ZodOptional; office: import("zod").ZodOptional>; report_type: import("zod").ZodOptional; report_year: import("zod").ZodOptional; category: import("zod").ZodOptional>; election_year: import("zod").ZodOptional; description: import("zod").ZodOptional; min_date: import("zod").ZodOptional; max_date: import("zod").ZodOptional; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; mode: import("zod").ZodEnum<{ election_dates: "election_dates"; events: "events"; filing_deadlines: "filing_deadlines"; }>; pagination: import("zod").ZodObject<{ page: import("zod").ZodNumber; pages: import("zod").ZodNumber; count: import("zod").ZodNumber; per_page: import("zod").ZodNumber; }, import("zod/v4/core").$strip>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "inputs_not_applicable_to_mode"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "A filter belonging to a different calendar mode was supplied, which the chosen mode cannot apply"; readonly recovery: "Switch to the mode that owns the named inputs, or drop them: description and category belong to events, report_type and report_year to filing_deadlines, state, office and election_year to election_dates. min_date and max_date work in every mode."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition>; committee_id: import("zod").ZodString; recipient_name: import("zod").ZodOptional; recipient_state: import("zod").ZodOptional; recipient_city: import("zod").ZodOptional; recipient_committee_id: import("zod").ZodOptional; disbursement_description: import("zod").ZodOptional; disbursement_purpose_category: import("zod").ZodOptional; cycle: import("zod").ZodOptional; min_date: import("zod").ZodOptional; max_date: import("zod").ZodOptional; min_amount: import("zod").ZodOptional; max_amount: import("zod").ZodOptional; sort: import("zod").ZodOptional>; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; cursor: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; mode: import("zod").ZodEnum<{ by_purpose: "by_purpose"; by_recipient: "by_recipient"; by_recipient_id: "by_recipient_id"; itemized: "itemized"; }>; committee: import("zod").ZodOptional>; next_cursor: import("zod").ZodOptional>; count: import("zod").ZodOptional; pagination: import("zod").ZodOptional>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "itemized_only_filters_in_aggregate_mode"; readonly code: import("@cyanheads/mcp-ts-core/errors").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\" to filter by recipient, description, date range, or amount, or drop the named inputs to keep the aggregate. Aggregate modes accept only committee_id, cycle, mode, page, per_page."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition; candidate_id: import("zod").ZodOptional; state: import("zod").ZodOptional; district: import("zod").ZodOptional; office: import("zod").ZodOptional>; party: import("zod").ZodOptional; cycle: import("zod").ZodOptional; election_year: import("zod").ZodOptional; incumbent_challenge: import("zod").ZodOptional>; candidate_status: import("zod").ZodOptional>; has_raised_funds: import("zod").ZodOptional; include_totals: import("zod").ZodOptional; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ candidates: import("zod").ZodArray>; totals: import("zod").ZodOptional>>; missing_totals: import("zod").ZodOptional>; pagination: import("zod").ZodObject<{ page: import("zod").ZodNumber; pages: import("zod").ZodNumber; count: import("zod").ZodNumber; per_page: import("zod").ZodNumber; }, import("zod/v4/core").$strip>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "candidate_not_found"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound; readonly when: "Single-candidate lookup by candidate_id returned no record"; readonly recovery: "Verify the candidate_id format (H/S/P + digits) or drop it and search by name, state, or cycle."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition; committee_id: import("zod").ZodOptional; candidate_id: import("zod").ZodOptional; state: import("zod").ZodOptional; party: import("zod").ZodOptional; committee_type: import("zod").ZodOptional; designation: import("zod").ZodOptional; cycle: import("zod").ZodOptional; treasurer_name: import("zod").ZodOptional; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ committees: import("zod").ZodArray>; pagination: import("zod").ZodObject<{ page: import("zod").ZodNumber; pages: import("zod").ZodNumber; count: import("zod").ZodNumber; per_page: import("zod").ZodNumber; }, import("zod/v4/core").$strip>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "committee_not_found"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound; readonly when: "Single-committee lookup by committee_id returned no record"; readonly recovery: "Verify the committee_id format (C + digits) or drop it and search by name, candidate_id, or type."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition>; committee_id: import("zod").ZodOptional; entity_type: import("zod").ZodOptional>; cycle: import("zod").ZodOptional; committee_state: import("zod").ZodOptional; committee_type: import("zod").ZodOptional; committee_designation: import("zod").ZodOptional; organization_type: import("zod").ZodOptional; min_receipts: import("zod").ZodOptional; max_receipts: import("zod").ZodOptional; min_disbursements: import("zod").ZodOptional; max_disbursements: import("zod").ZodOptional; sort: import("zod").ZodOptional>; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; mode: import("zod").ZodEnum<{ by_entity_type: "by_entity_type"; single: "single"; }>; pagination: import("zod").ZodObject<{ page: import("zod").ZodNumber; pages: import("zod").ZodNumber; count: import("zod").ZodNumber; per_page: import("zod").ZodNumber; }, import("zod/v4/core").$strip>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "committee_id_required_for_single_mode"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "Mode single invoked without a committee_id"; readonly recovery: "Pass the committee_id whose totals you want (find one with openfec_search_committees), or switch to mode by_entity_type with an entity_type to search across committees."; }, { readonly reason: "entity_type_required_for_group_mode"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "Mode by_entity_type invoked without an entity_type"; readonly recovery: "Pass an entity_type of presidential, pac, party, pac-party, house-senate, or ie-only, or switch to mode single with a committee_id."; }, { readonly reason: "inputs_not_applicable_to_mode"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "A grouped-search filter (entity_type, committee_state, committee_type, committee_designation, organization_type, or a receipts/disbursements bound) was supplied alongside mode single, which cannot apply it"; readonly recovery: "Re-run with mode \"by_entity_type\" to filter across committees by state, type, designation, or a financial threshold, or drop the named inputs to keep the single-committee lookup. Mode single accepts only committee_id, cycle, sort, mode, page, per_page."; }, { readonly reason: "committee_totals_not_found"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound; readonly when: "Single-committee lookup matched no totals row — the committee_id does not exist, it filed nothing in the requested cycle, or it has never filed a financial report at all"; readonly recovery: "Drop the cycle filter to see every cycle the committee has on record, and verify the committee_id with openfec_search_committees; a committee that files no financial report has no totals at any cycle, so read its filings with openfec_search_filings instead."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition>; committee_id: import("zod").ZodOptional; candidate_id: import("zod").ZodOptional; contributor_name: import("zod").ZodOptional; contributor_employer: import("zod").ZodOptional; contributor_occupation: import("zod").ZodOptional; contributor_city: import("zod").ZodOptional; contributor_state: import("zod").ZodOptional; contributor_zip: import("zod").ZodOptional; cycle: import("zod").ZodOptional; min_date: import("zod").ZodOptional; max_date: import("zod").ZodOptional; min_amount: import("zod").ZodOptional; max_amount: import("zod").ZodOptional; is_individual: import("zod").ZodOptional; sort: import("zod").ZodOptional>; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; cursor: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; mode: import("zod").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: import("zod").ZodOptional>; next_cursor: import("zod").ZodOptional>; count: import("zod").ZodOptional; pagination: import("zod").ZodOptional>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "itemized_requires_committee_id"; readonly code: import("@cyanheads/mcp-ts-core/errors").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: import("@cyanheads/mcp-ts-core/errors").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: import("@cyanheads/mcp-ts-core/errors").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: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition>; committee_id: import("zod").ZodOptional; candidate_id: import("zod").ZodOptional; support_oppose: import("zod").ZodOptional>; payee_name: import("zod").ZodOptional; candidate_office: import("zod").ZodOptional>; candidate_office_state: import("zod").ZodOptional; candidate_office_district: import("zod").ZodOptional; candidate_party: import("zod").ZodOptional; cycle: import("zod").ZodOptional; min_date: import("zod").ZodOptional; max_date: import("zod").ZodOptional; min_amount: import("zod").ZodOptional; max_amount: import("zod").ZodOptional; is_notice: import("zod").ZodOptional; most_recent: import("zod").ZodOptional; sort: import("zod").ZodOptional>; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; cursor: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; mode: import("zod").ZodEnum<{ by_candidate: "by_candidate"; itemized: "itemized"; }>; committee: import("zod").ZodOptional>; next_cursor: import("zod").ZodOptional>; count: import("zod").ZodOptional; pagination: import("zod").ZodOptional>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "by_candidate_requires_scope"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "by_candidate mode invoked without a candidate_id and without a full race scope"; readonly recovery: "Pass a candidate_id (find one with openfec_search_candidates), or scope a whole race: candidate_office=P on its own, candidate_office=S with candidate_office_state, or candidate_office=H with both candidate_office_state and candidate_office_district."; }, { readonly reason: "itemized_only_filters_in_aggregate_mode"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "An itemized-only filter (payee_name, candidate_party, a date or amount bound, is_notice, most_recent, sort, cursor) was supplied alongside mode by_candidate, which cannot apply it"; readonly recovery: "Re-run with mode \"itemized\" to filter by payee, party, date range, amount, or notice status, or drop the named inputs to keep the per-candidate aggregate. by_candidate accepts only committee_id, candidate_id, support_oppose, candidate_office, candidate_office_state, candidate_office_district, cycle, mode, page, per_page."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition; candidate_id: import("zod").ZodOptional; cycle: import("zod").ZodOptional; payee_name: import("zod").ZodOptional; min_date: import("zod").ZodOptional; max_date: import("zod").ZodOptional; min_amount: import("zod").ZodOptional; max_amount: import("zod").ZodOptional; sort: import("zod").ZodOptional>; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; committee: import("zod").ZodOptional>; pagination: import("zod").ZodObject<{ page: import("zod").ZodNumber; pages: import("zod").ZodNumber; count: import("zod").ZodNumber; per_page: import("zod").ZodNumber; }, import("zod/v4/core").$strip>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, undefined, { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition; candidate_id: import("zod").ZodOptional; filer_name: import("zod").ZodOptional; form_type: import("zod").ZodOptional; report_type: import("zod").ZodOptional; report_year: import("zod").ZodOptional; cycle: import("zod").ZodOptional; is_amended: import("zod").ZodOptional; most_recent: import("zod").ZodDefault; min_receipt_date: import("zod").ZodOptional; max_receipt_date: import("zod").ZodOptional; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; pagination: import("zod").ZodObject<{ page: import("zod").ZodNumber; pages: import("zod").ZodNumber; count: import("zod").ZodNumber; per_page: import("zod").ZodNumber; }, import("zod/v4/core").$strip>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, undefined, { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition>; office: import("zod").ZodEnum<{ H: "H"; P: "P"; S: "S"; }>; cycle: import("zod").ZodNumber; state: import("zod").ZodOptional; district: import("zod").ZodOptional; zip: import("zod").ZodOptional; election_full: import("zod").ZodOptional; page: import("zod").ZodDefault; per_page: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; mode: import("zod").ZodEnum<{ search: "search"; summary: "summary"; }>; pagination: import("zod").ZodObject<{ page: import("zod").ZodNumber; pages: import("zod").ZodNumber; count: import("zod").ZodNumber; per_page: import("zod").ZodNumber; }, import("zod/v4/core").$strip>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "cycle_must_be_even"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "Cycle is an odd year"; readonly recovery: "Federal election cycles are two-year periods ending in even years (e.g., 2024, 2026)."; }, { readonly reason: "missing_state_for_office"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "Senate or House office without a state and without a zip"; readonly recovery: "Provide a two-letter state code (e.g., AZ) or a zip code to scope the senate or house race."; }, { readonly reason: "missing_district_for_house"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "House office without a district number and without a zip"; readonly recovery: "Provide a two-digit district number (e.g., \"07\") or a zip code to identify the House race."; }, { readonly reason: "summary_does_not_support_zip"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "Summary mode invoked with a zip parameter"; readonly recovery: "Use mode \"search\" for ZIP-based lookups, or remove zip and use state and district for summary mode."; }, { readonly reason: "inputs_not_applicable_to_mode"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "election_full supplied alongside zip — a ZIP-scoped search runs an endpoint that has no such parameter"; readonly recovery: "Drop election_full to keep the ZIP lookup, or drop zip and scope the race with state and district, where election_full applies."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition; type: import("zod").ZodOptional>; ao_number: import("zod").ZodOptional; case_number: import("zod").ZodOptional; respondent: import("zod").ZodOptional; regulatory_citation: import("zod").ZodOptional; statutory_citation: import("zod").ZodOptional; min_penalty_amount: import("zod").ZodOptional; max_penalty_amount: import("zod").ZodOptional; date_kind: import("zod").ZodOptional>; min_date: import("zod").ZodOptional; max_date: import("zod").ZodOptional; from_hit: import("zod").ZodDefault; hits_returned: import("zod").ZodDefault; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ results: import("zod").ZodArray>; total_count: import("zod").ZodNumber; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "missing_filter"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "Called without any scoping filter at all"; readonly recovery: "Provide at least one of: query, type, ao_number, case_number, respondent, regulatory_citation, statutory_citation, a penalty bound (min_penalty_amount / max_penalty_amount), or a date bound with its type and date_kind."; }, { readonly reason: "date_filter_incomplete"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "min_date or max_date given without both a type and a date_kind, or a date_kind given with neither bound"; readonly recovery: "Send min_date and/or max_date together with type and date_kind — upstream date parameters are named per document type and per date kind, so both are needed to pick one."; }, { readonly reason: "date_kind_not_valid_for_type"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError; readonly when: "The requested date_kind is not a date this document type records"; readonly recovery: "Pick a date_kind the type records: advisory_opinions has issue_date, request_date, document_date; murs and adrs have open_date, close_date, document_date; admin_fines has rtb_date and fd_date; statutes are not date-filterable."; }], { readonly totalCount: import("zod").ZodNumber; readonly notice: import("zod").ZodOptional; readonly retrievalHint: import("zod").ZodOptional; }> | import("@cyanheads/mcp-ts-core").ToolDefinition; no: import("zod").ZodString; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ document: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; search_criteria: import("zod").ZodObject<{}, import("zod/v4/core").$loose>; }, import("zod/v4/core").$strip>, readonly [{ readonly reason: "legal_document_not_found"; readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound; readonly when: "No legal document exists at the requested doc_type and no"; readonly recovery: "Confirm doc_type is the plural form of the search result document_type and that no is copied from that result's no field; openfec_search_legal returns both."; }], { readonly attachedDocumentCount: import("zod").ZodNumber; }>)[]; //# sourceMappingURL=index.d.ts.map