import { SavedProfile, UserProfile, ProfileListResponse, ProfileSearchResponse, AnalyzeLinkedInResponse, SearchLinkedInResponse } from './types.js';
export declare class PRSNAApiClient {
    private baseUrl;
    private token;
    private cache;
    constructor(token: string, baseUrl?: string);
    /**
     * Authenticate and validate the token
     */
    authenticate(): Promise<UserProfile>;
    /**
     * Validate MCP token using the dedicated endpoint
     */
    private validateMCPToken;
    /**
     * Validate token and get user profile
     */
    validateToken(): Promise<{
        isValid: boolean;
        user?: UserProfile;
    }>;
    /**
     * Get all saved profiles for the authenticated user
     */
    getProfiles(limit?: number, offset?: number): Promise<ProfileListResponse>;
    /**
     * Get a specific profile by ID
     */
    getProfile(id: string): Promise<SavedProfile>;
    /**
     * Search profiles by query string
     */
    searchProfiles(query: string, limit?: number): Promise<ProfileSearchResponse>;
    /**
     * Find a profile by name (for @mention functionality)
     */
    findProfileByName(name: string): Promise<SavedProfile | null>;
    /**
     * Analyze a LinkedIn profile URL
     * This operation can take 10-30 seconds due to LinkedIn fetching and LLM analysis
     */
    analyzeLinkedInProfile(linkedInUrl: string, save?: boolean, update?: boolean, notes?: string): Promise<AnalyzeLinkedInResponse>;
    /**
     * Search for LinkedIn profiles by name using Google Custom Search
     */
    searchLinkedInByName(name: string, company?: string, location?: string, title?: string): Promise<SearchLinkedInResponse>;
    /**
     * Invalidate the profiles cache after saving a new profile
     */
    private invalidateProfilesCache;
    /**
     * Make HTTP request with custom timeout for long-running operations
     */
    private makeRequestWithTimeout;
    /**
     * Make HTTP request with authentication and error handling
     */
    private makeRequest;
    /**
     * Get cache statistics
     */
    getCacheStats(): {
        size: number;
        maxSize: number;
        hitRate?: number | undefined;
    };
    /**
     * Clear all cached data
     */
    clearCache(): void;
    /**
     * Destroy the client and cleanup resources
     */
    destroy(): void;
}
//# sourceMappingURL=client.d.ts.map