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