import { AxiosInstance } from "axios";
import { ContactSearchQuery, EmployeesOfCompanyQuery, OrganizationEnrichmentQuery, OrganizationSearchQuery, PeopleEnrichmentQuery, PeopleSearchQuery } from "../interfaces/apollo-query.interface.js";
export declare class ApolloClient {
    private apiKey;
    private baseUrl;
    private headers;
    private axiosInstance;
    constructor(apiKey?: string);
    getAxiosInstance({ baseUrl }: {
        baseUrl: string;
    }): AxiosInstance;
    request({ baseUrl, url, method, data, query, }: {
        baseUrl?: string;
        url: string;
        method: "post" | "get" | "put" | "delete" | "patch";
        data?: any;
        query?: any;
    }): Promise<any>;
    /**
     * Use the Contact Search endpoint to find contacts.
     * https://docs.apollo.io/reference/contact-search
     */
    contactSearch(query: ContactSearchQuery): Promise<any | null>;
    /**
     * Use the People Enrichment endpoint to enrich data for 1 person.
     * https://docs.apollo.io/reference/people-enrichment
     */
    peopleEnrichment(query: PeopleEnrichmentQuery): Promise<any>;
    /**
     * Use the Organization Enrichment endpoint to enrich data for 1 company.
     * https://docs.apollo.io/reference/organization-enrichment
     */
    organizationEnrichment(query: OrganizationEnrichmentQuery): Promise<any>;
    /**
     * Use the People Search endpoint to find people.
     * https://docs.apollo.io/reference/people-search
     */
    peopleSearch(query: PeopleSearchQuery): Promise<any>;
    /**
     * Use the Organization Search endpoint to find organizations.
     * https://docs.apollo.io/reference/organization-search
     */
    organizationSearch(query: OrganizationSearchQuery): Promise<any>;
    /**
     * Use the Organization Job Postings endpoint to find job postings for a specific organization.
     * https://docs.apollo.io/reference/organization-jobs-postings
     */
    organizationJobPostings(organizationId: string): Promise<any>;
    /**
     * Get email address for a person using their Apollo ID
     */
    getPersonEmail(apolloId: string): Promise<any>;
    /**
     * Find employees of a company using company name or website/LinkedIn URL
     */
    employeesOfCompany(query: EmployeesOfCompanyQuery): Promise<any>;
}
