/** * CFPB SDK — typed API client for the Consumer Financial Protection Bureau * Consumer Complaint Database. * * Standalone — no MCP server required. Usage: * * import { searchComplaints, getCompanyComplaints, getComplaintTrends } from "us-gov-open-data-mcp/sdk/cfpb"; * * const data = await searchComplaints({ product: "Mortgage", state: "CA" }); * console.log(data); * * No API key required. * Docs: https://cfpb.github.io/api/ccdb/ * Database: https://www.consumerfinance.gov/data-research/consumer-complaints/ */ /** Complaint. */ export interface Complaint { complaint_id?: number; date_received?: string; product?: string; sub_product?: string; issue?: string; sub_issue?: string; company?: string; state?: string; zip_code?: string; company_response?: string; company_public_response?: string; consumer_consent_provided?: string; consumer_disputed?: string; consumer_complaint_narrative?: string; timely?: string; date_sent_to_company?: string; submitted_via?: string; tags?: string; has_narrative?: boolean; [key: string]: unknown; } /** Complaint Search Result. */ export interface ComplaintSearchResult { hits: { total: number | { value: number; relation: string; }; hits: Array<{ _source: Complaint; [key: string]: unknown; }>; }; _meta?: { total_record_count?: number; last_updated?: string; last_indexed?: string; license?: string; [key: string]: unknown; }; [key: string]: unknown; } /** Aggregation Bucket. */ export interface AggregationBucket { key: string; doc_count: number; [key: string]: unknown; } /** Suggest Result. */ export interface SuggestResult { suggest: Array<{ text: string; options: Array<{ text: string; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; } /** Financial product categories tracked by CFPB. */ export declare const PRODUCTS: { readonly "Credit reporting, credit repair services, or other personal consumer reports": "Credit reporting & repair"; readonly "Debt collection": "Debt collection practices"; readonly Mortgage: "Home mortgage complaints"; readonly "Credit card or prepaid card": "Credit/prepaid card issues"; readonly "Checking or savings account": "Bank account problems"; readonly "Student loan": "Student loan servicing"; readonly "Vehicle loan or lease": "Auto loans and leases"; readonly "Money transfer, virtual currency, or money service": "Transfers & crypto"; readonly "Payday loan, title loan, or personal loan": "Payday/personal loans"; readonly "Credit card": "Legacy credit card category"; }; /** Fields available for aggregation. */ export declare const AGG_FIELDS: { readonly product: "Financial product category"; readonly sub_product: "Product subcategory"; readonly issue: "Issue type"; readonly company: "Company name"; readonly state: "State abbreviation"; readonly company_response: "Company response type"; readonly timely: "Whether company responded timely (Yes/No)"; readonly consumer_disputed: "Whether consumer disputed (Yes/No)"; readonly submitted_via: "Submission channel (Web, Referral, Phone, etc.)"; readonly tags: "Special tags (Older American, Servicemember, etc.)"; }; /** * Search consumer complaints with filters. * Note: The `company` parameter requires the exact official name (e.g. "WELLS FARGO & COMPANY"). * If an exact company match returns 0 results, automatically retries using `search_term` for * a fuzzy match across all fields. * * Example: * const data = await searchComplaints({ product: "Mortgage", state: "CA", size: 25 }); * const recent = await searchComplaints({ company: "Wells Fargo", sort: "created_date_desc" }); */ export declare function searchComplaints(opts: { search_term?: string; product?: string; company?: string; state?: string; issue?: string; date_received_min?: string; date_received_max?: string; company_received_min?: string; company_received_max?: string; company_response?: string; company_public_response?: string; consumer_consent_provided?: string; consumer_disputed?: string; has_narrative?: boolean; submitted_via?: string; timely?: string; tags?: string; zip_code?: string; size?: number; frm?: number; sort?: string; field?: string; no_aggs?: boolean; no_highlight?: boolean; search_after?: string; }): Promise; /** * Get complaint aggregations/counts grouped by a field. * Uses the search endpoint with size=0 to return only aggregations. * * Example: * const byProduct = await getComplaintAggregations({ field: "product" }); * const byCompany = await getComplaintAggregations({ field: "company", state: "TX", size: 20 }); */ export declare function getComplaintAggregations(opts: { field: string; search_term?: string; product?: string; company?: string; state?: string; issue?: string; date_received_min?: string; date_received_max?: string; tags?: string; submitted_via?: string; timely?: string; zip_code?: string; size?: number; }): Promise; /** * Get complaint trends over time using the dedicated /trends endpoint. * * Example: * const trends = await getComplaintTrends({ lens: "overview", date_received_min: "2020-01-01" }); * const byProduct = await getComplaintTrends({ lens: "product", company: "Wells Fargo" }); */ export declare function getComplaintTrends(opts: { lens?: string; sub_lens?: string; sub_lens_depth?: number; focus?: string; search_term?: string; product?: string; company?: string; state?: string; issue?: string; date_received_min?: string; date_received_max?: string; tags?: string; submitted_via?: string; timely?: string; zip_code?: string; trend_interval?: string; }): Promise; /** * Get a specific complaint by its ID. * * Example: * const complaint = await getComplaintById(1234567); */ export declare function getComplaintById(complaintId: number): Promise; /** * Get complaint information broken down by state (geographic view). * Useful for building maps or comparing complaint rates across states. * * Example: * const states = await getStateComplaints({ product: "Mortgage" }); */ export declare function getStateComplaints(opts?: { search_term?: string; product?: string; company?: string; issue?: string; date_received_min?: string; date_received_max?: string; tags?: string; submitted_via?: string; timely?: string; }): Promise; /** * Get company name suggestions/autocomplete. * * Example: * const suggestions = await suggestCompany("wells"); */ export declare function suggestCompany(text: string, size?: number): Promise; /** * Get general search suggestions/autocomplete. * * Example: * const suggestions = await suggestSearch("mortgage fraud"); */ export declare function suggestSearch(text: string, size?: number): Promise; /** Clear cached responses. */ export declare function clearCache(): void; //# sourceMappingURL=sdk.d.ts.map