/** * Energy Intelligence - FracFocus Resource * * Access hydraulic fracturing disclosure data including chemicals, operators, * and well-level information from the FracFocus registry. */ import type { OilPriceAPI } from "../../client.js"; /** * FracFocus disclosure record */ export interface FracFocusRecord { /** Record ID */ id: string; /** API well number */ api_number: string; /** State */ state: string; /** County */ county?: string; /** Operator name */ operator?: string; /** Well name */ well_name?: string; /** Job start date */ job_start_date?: string; /** Job end date */ job_end_date?: string; /** Total base water volume (gallons) */ total_base_water_volume?: number; /** Total base non-water volume (gallons) */ total_base_non_water_volume?: number; /** ISO timestamp */ timestamp: string; /** Additional metadata */ metadata?: Record; } /** * FracFocus summary */ export interface FracFocusSummary { /** Total disclosures */ total_disclosures: number; /** Disclosures by state */ by_state?: Record; /** Disclosures by operator */ by_operator?: Record; /** As of date */ as_of_date: string; } /** * Disclosures by state */ export interface DisclosuresByState { /** State name */ state: string; /** Disclosure count */ disclosure_count: number; /** Date */ date: string; } /** * Disclosures by operator */ export interface DisclosuresByOperator { /** Operator name */ operator: string; /** Disclosure count */ disclosure_count: number; /** Percentage of total */ percentage?: number; /** Date */ date: string; } /** * Chemical usage data */ export interface ChemicalUsage { /** Chemical name */ chemical_name: string; /** CAS number */ cas_number?: string; /** Usage count */ usage_count: number; /** Percentage of total */ percentage?: number; } /** * Chemical detail for a specific well */ export interface WellChemical { /** Chemical name */ chemical_name: string; /** CAS number */ cas_number?: string; /** Purpose */ purpose?: string; /** Ingredient concentration (%) */ concentration_percent?: number; /** Mass used (lbs) */ mass_lbs?: number; } /** * FracFocus search query. * * Maps to the parameters the `search` action actually reads. Note: `operator` * and `chemical` are NOT search params (use the dedicated by-operator / * by-chemical endpoints); state filtering uses `states` (comma-separated, plural). */ export interface FracFocusSearchQuery { /** Comma-separated state codes (e.g. 'TX,NM') */ states?: string; /** County name (partial match) */ county?: string; /** Well name (partial match) */ well_name?: string; /** API well number (partial match) */ api_number?: string; /** Minimum total base water volume (gallons) */ min_water_gallons?: number; /** Latitude for radius search */ latitude?: number; /** Longitude for radius search */ longitude?: number; /** Radius in miles (1-100, default 10) for lat/lng search */ radius_miles?: number; /** Start date (job_start_date >=) */ start_date?: string; /** End date (job_start_date <=) */ end_date?: string; } /** * EI FracFocus Resource * * Access hydraulic fracturing disclosure data from the FracFocus registry. * * @example * ```typescript * const client = new OilPriceAPI({ apiKey: 'your_key' }); * * // Get latest disclosure * const latest = await client.ei.fracFocus.latest(); * console.log(`Well: ${latest.well_name} (API: ${latest.api_number})`); * * // Get disclosures by state * const states = await client.ei.fracFocus.byState(); * states.forEach(s => console.log(`${s.state}: ${s.disclosure_count} disclosures`)); * * // Get chemicals for a specific well * const chemicals = await client.ei.fracFocus.chemicals('42-123-12345'); * chemicals.forEach(c => console.log(`${c.chemical_name}: ${c.concentration_percent}%`)); * * // Search disclosures * const results = await client.ei.fracFocus.search({ * state: 'Texas', * operator: 'EOG Resources' * }); * ``` */ export declare class EIFracFocusResource { private client; constructor(client: OilPriceAPI); /** * List all FracFocus disclosure records * * @returns Array of disclosure records */ list(): Promise; /** * Get a specific FracFocus disclosure record * * @param id - Record ID * @returns Disclosure record */ get(id: string): Promise; /** * Get latest FracFocus disclosure * * @returns Latest disclosure record */ latest(): Promise; /** * Get FracFocus summary * * @returns Disclosure summary statistics */ summary(): Promise; /** * Get disclosures by state * * @returns Array of disclosures grouped by state */ byState(): Promise; /** * Get disclosures by operator * * @returns Array of disclosures grouped by operator */ byOperator(): Promise; /** * Get chemical usage statistics * * @returns Array of chemicals used in fracturing */ byChemical(): Promise; /** * Search FracFocus disclosures * * @param query - Search query parameters * @returns Array of matching disclosure records */ search(query: FracFocusSearchQuery): Promise; /** * Get chemicals used in a specific well * * @param id - Disclosure record ID * @returns Array of chemicals used in the well */ chemicals(id: string): Promise; /** * Get FracFocus disclosures for a specific well by API number * * @param apiNumber - API well number (e.g., "42-123-12345") * @returns Array of disclosure records for the well */ forWell(apiNumber: string): Promise; }