@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
TypeScript
/**
* 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>;
}