import { z } from 'zod'; import { ToolBubble } from '../../types/tool-bubble-class.js'; import type { BubbleContext } from '../../types/bubble.js'; import { CredentialType, type BubbleName } from '@bubblelab/shared-schemas'; declare const ContactSchema: z.ZodObject<{ name: z.ZodNullable; title: z.ZodNullable; headline: z.ZodNullable; linkedinUrl: z.ZodNullable; profilePictureUrl: z.ZodNullable; emails: z.ZodNullable>; twitterHandle: z.ZodNullable; role: z.ZodEnum<["cxo", "decision_maker", "founder"]>; location: z.ZodNullable; skills: z.ZodNullable>; languages: z.ZodNullable>; summary: z.ZodNullable; currentEmployment: z.ZodNullable; companyName: z.ZodNullable; companyLinkedinUrl: z.ZodNullable; startDate: z.ZodNullable>; description: z.ZodNullable; }, "strip", z.ZodTypeAny, { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }, { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }>, "many">>; pastEmployment: z.ZodNullable; companyName: z.ZodNullable; startDate: z.ZodNullable>; endDate: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }, { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }>, "many">>; education: z.ZodNullable; degreeName: z.ZodNullable; fieldOfStudy: z.ZodNullable; }, "strip", z.ZodTypeAny, { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }, { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }>, "many">>; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }, { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }>; declare const CompanyEnrichmentToolParamsSchema: z.ZodObject<{ provider: z.ZodDefault>; companyIdentifier: z.ZodString; limit: z.ZodOptional>; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { provider: "crustdata" | "fullenrich"; companyIdentifier: string; credentials?: Partial> | undefined; limit?: number | undefined; }, { companyIdentifier: string; credentials?: Partial> | undefined; provider?: "crustdata" | "fullenrich" | undefined; limit?: number | undefined; }>; declare const CompanyEnrichmentToolResultSchema: z.ZodObject<{ contacts: z.ZodArray; title: z.ZodNullable; headline: z.ZodNullable; linkedinUrl: z.ZodNullable; profilePictureUrl: z.ZodNullable; emails: z.ZodNullable>; twitterHandle: z.ZodNullable; role: z.ZodEnum<["cxo", "decision_maker", "founder"]>; location: z.ZodNullable; skills: z.ZodNullable>; languages: z.ZodNullable>; summary: z.ZodNullable; currentEmployment: z.ZodNullable; companyName: z.ZodNullable; companyLinkedinUrl: z.ZodNullable; startDate: z.ZodNullable>; description: z.ZodNullable; }, "strip", z.ZodTypeAny, { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }, { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }>, "many">>; pastEmployment: z.ZodNullable; companyName: z.ZodNullable; startDate: z.ZodNullable>; endDate: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }, { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }>, "many">>; education: z.ZodNullable; degreeName: z.ZodNullable; fieldOfStudy: z.ZodNullable; }, "strip", z.ZodTypeAny, { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }, { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }>, "many">>; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }, { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }>, "many">; company: z.ZodNullable; linkedinUrl: z.ZodNullable; website: z.ZodNullable; industry: z.ZodNullable; description: z.ZodNullable; headcount: z.ZodNullable; hqCity: z.ZodNullable; hqCountry: z.ZodNullable; yearFounded: z.ZodNullable; fundingStage: z.ZodNullable; totalFunding: z.ZodNullable; }, "strip", z.ZodTypeAny, { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; }, { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; }>>; totalContacts: z.ZodNumber; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { error: string; success: boolean; contacts: { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }[]; company: { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; } | null; totalContacts: number; }, { error: string; success: boolean; contacts: { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }[]; company: { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; } | null; totalContacts: number; }>; type CompanyEnrichmentToolParams = z.output; type CompanyEnrichmentToolResult = z.output; type CompanyEnrichmentToolParamsInput = z.input; export type Contact = z.output; export type CompanyEnrichmentResult = CompanyEnrichmentToolResult; /** * Company Enrichment Tool * * Agent-friendly tool for company enrichment and lead generation. * Takes a simple company identifier (name, domain, or LinkedIn URL) * and returns key contacts with full profiles. * * Features: * - Auto-detects identifier type (name, domain, LinkedIn URL) * - Returns CXOs, decision makers, and founders * - Full contact profiles with work history and education * - Prioritized results (CXOs first, then decision makers, then founders) * * Uses CrustdataBubble under the hood with a two-step process: * 1. Identify company (FREE) to get company_id * 2. Enrich company (1 credit) to get contacts */ export declare class CompanyEnrichmentTool extends ToolBubble { static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ provider: z.ZodDefault>; companyIdentifier: z.ZodString; limit: z.ZodOptional>; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { provider: "crustdata" | "fullenrich"; companyIdentifier: string; credentials?: Partial> | undefined; limit?: number | undefined; }, { companyIdentifier: string; credentials?: Partial> | undefined; provider?: "crustdata" | "fullenrich" | undefined; limit?: number | undefined; }>; static readonly resultSchema: z.ZodObject<{ contacts: z.ZodArray; title: z.ZodNullable; headline: z.ZodNullable; linkedinUrl: z.ZodNullable; profilePictureUrl: z.ZodNullable; emails: z.ZodNullable>; twitterHandle: z.ZodNullable; role: z.ZodEnum<["cxo", "decision_maker", "founder"]>; location: z.ZodNullable; skills: z.ZodNullable>; languages: z.ZodNullable>; summary: z.ZodNullable; currentEmployment: z.ZodNullable; companyName: z.ZodNullable; companyLinkedinUrl: z.ZodNullable; startDate: z.ZodNullable>; description: z.ZodNullable; }, "strip", z.ZodTypeAny, { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }, { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }>, "many">>; pastEmployment: z.ZodNullable; companyName: z.ZodNullable; startDate: z.ZodNullable>; endDate: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }, { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }>, "many">>; education: z.ZodNullable; degreeName: z.ZodNullable; fieldOfStudy: z.ZodNullable; }, "strip", z.ZodTypeAny, { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }, { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }>, "many">>; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }, { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }>, "many">; company: z.ZodNullable; linkedinUrl: z.ZodNullable; website: z.ZodNullable; industry: z.ZodNullable; description: z.ZodNullable; headcount: z.ZodNullable; hqCity: z.ZodNullable; hqCountry: z.ZodNullable; yearFounded: z.ZodNullable; fundingStage: z.ZodNullable; totalFunding: z.ZodNullable; }, "strip", z.ZodTypeAny, { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; }, { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; }>>; totalContacts: z.ZodNumber; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { error: string; success: boolean; contacts: { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }[]; company: { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; } | null; totalContacts: number; }, { error: string; success: boolean; contacts: { title: string | null; name: string | null; summary: string | null; role: "founder" | "cxo" | "decision_maker"; emails: string[] | null; location: string | null; headline: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; currentEmployment: { description: string | null; title: string | null; companyName: string | null; companyLinkedinUrl: string | null; startDate: string | number | null; }[] | null; pastEmployment: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; }[]; company: { description: string | null; name: string | null; website: string | null; linkedinUrl: string | null; industry: string | null; headcount: number | null; hqCity: string | null; hqCountry: string | null; yearFounded: number | null; fundingStage: string | null; totalFunding: string | null; } | null; totalContacts: number; }>; static readonly shortDescription = "Get key contacts (executives, decision makers) from any company for lead generation"; static readonly longDescription = "\n Company enrichment tool for lead generation and sales prospecting.\n\n **SIMPLE INTERFACE:**\n Just provide a company name, domain, or LinkedIn URL to get key contacts.\n The tool automatically:\n - Detects the identifier type\n - Identifies the company\n - Enriches with contact data\n - Returns prioritized contacts (CXOs first)\n\n **WHAT YOU GET:**\n - Contact names and titles\n - LinkedIn profiles and email addresses\n - Work history and education\n - Skills and professional summary\n\n **CONTACT TYPES (prioritized):**\n 1. CXOs - C-level executives (CEO, CTO, CFO, etc.)\n 2. Decision makers - VP, Director, Head of, etc.\n 3. Founders - Company founders\n\n **USE CASES:**\n - Sales prospecting - find decision makers to reach out to\n - Lead generation - build contact lists for outreach\n - Company research - understand company leadership\n - Competitive intelligence - track competitor executives\n - Partnership opportunities - find the right contacts\n\n **EXAMPLES:**\n - \"stripe.com\" - get contacts from Stripe\n - \"Anthropic\" - search by company name\n - \"https://www.linkedin.com/company/openai\" - use LinkedIn URL\n\n **CREDITS:**\n - Identify operation: FREE\n - Enrich operation: 1 credit per company\n "; static readonly alias = "enrich"; static readonly type = "tool"; constructor(params?: CompanyEnrichmentToolParamsInput, context?: BubbleContext); performAction(): Promise; private enrichCrustdata; /** * Enrich via FullEnrich v2 /company/search. Returns company metadata only; * contacts[] is always empty because FullEnrich's search endpoint does not * return contacts. Use provider='crustdata' for contacts. */ private enrichFullEnrich; /** * Detect identifier type from the input string */ private detectIdentifierType; /** * Build identify params based on identifier type */ private buildIdentifyParams; /** * Transform and merge contacts from different sources * Priority: CXOs > Decision Makers > Founders */ private transformContacts; /** * Transform a single profile to Contact format */ private transformProfile; /** * Transform company info to output format */ private transformCompanyInfo; /** * Create an error result */ private createErrorResult; } export {}; //# sourceMappingURL=company-enrichment-tool.d.ts.map