UNPKG

@lineai/gov-deals

Version:

Explore Federal contracts for government building renovations, city hall renovations, courthouse updates, library modernizations, federal building improvement contracts, base housing and facilities upgrades.

53 lines (52 loc) 1.93 kB
/** * SAM.gov Opportunities endpoint */ import { GovDealsPaginationParams } from '../../../types/common'; import { SamOpportunity, SamOpportunitySearchFilters, SamOpportunitySearchResponse } from '../../../types/opportunities'; import { SamClient } from '../client'; export declare const US_STATE_NAMES: string[]; export declare const US_STATE_CODES: string[]; export declare class OpportunitiesEndpoint { private client; constructor(client: SamClient); /** * Search for opportunities */ search(filters?: SamOpportunitySearchFilters, pagination?: GovDealsPaginationParams): Promise<SamOpportunitySearchResponse>; /** * Search for construction opportunities specifically */ searchConstruction(additionalFilters?: Partial<SamOpportunitySearchFilters>, pagination?: GovDealsPaginationParams): Promise<SamOpportunitySearchResponse>; /** * Build search parameters for the API */ private buildSearchParams; /** * Format date from YYYY-MM-DD to MM/dd/yyyy for SAM.gov API */ private formatDateForApi; /** * Transform API response to our schema * Based on actual SAM.gov API structure */ private transformSearchResponse; /** * Get opportunity by ID - uses search with specific notice ID */ getById(noticeId: string): Promise<SamOpportunity>; /** * Get opportunity by SAM.gov UI URL - extracts notice ID from URL and retrieves the record * Accepts URLs like: https://sam.gov/opp/{noticeId}/view * Returns undefined if URL doesn't contain a valid notice ID */ getByUrl(url: string): Promise<SamOpportunity | undefined>; /** * Extract notice ID from SAM.gov opportunity URL * Returns undefined if no valid notice ID found */ private extractNoticeIdFromUrl; /** * Get opportunity description */ getDescription(noticeId: string): Promise<string>; }