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 PersonResultSchema: z.ZodObject<{ name: z.ZodNullable; title: z.ZodNullable; headline: z.ZodNullable; linkedinUrl: z.ZodNullable; profilePictureUrl: z.ZodNullable; emails: z.ZodNullable>; twitterHandle: z.ZodNullable; websites: z.ZodNullable>; enrichedWorkEmail: z.ZodOptional>; enrichedPersonalEmail: z.ZodOptional>; enrichedWorkEmails: z.ZodOptional; }, "strip", z.ZodTypeAny, { email: string; status?: string | undefined; }, { email: string; status?: string | undefined; }>, "many">>>; enrichedPersonalEmails: z.ZodOptional; }, "strip", z.ZodTypeAny, { email: string; status?: string | undefined; }, { email: string; status?: string | undefined; }>, "many">>>; seniorityLevel: z.ZodNullable; yearsOfExperience: z.ZodNullable; recentlyChangedJobs: z.ZodNullable; location: z.ZodNullable; locationCity: z.ZodNullable; locationCountry: z.ZodNullable; skills: z.ZodNullable>; languages: z.ZodNullable>; summary: z.ZodNullable; numConnections: z.ZodNullable; currentEmployers: z.ZodNullable; companyName: z.ZodNullable; companyLinkedinUrl: z.ZodNullable; companyDomainUrl: z.ZodNullable; seniorityLevel: z.ZodNullable; functionCategory: z.ZodNullable; startDate: z.ZodNullable>; yearsAtCompany: z.ZodNullable; companyHeadcount: z.ZodNullable; companyIndustries: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }, { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }>, "many">>; pastEmployers: 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; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }, { title: string | null; name: string | null; summary: string | null; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }>; declare const PeopleSearchToolParamsSchema: z.ZodObject<{ provider: z.ZodDefault>; companyName: z.ZodOptional; companyLinkedinUrl: z.ZodOptional; jobTitle: z.ZodOptional; jobTitles: z.ZodOptional>; location: z.ZodOptional; locationRadius: z.ZodOptional>; skills: z.ZodOptional>; languages: z.ZodOptional>; minYearsExperience: z.ZodOptional; maxYearsExperience: z.ZodOptional; seniorityLevels: z.ZodOptional>; functionCategories: z.ZodOptional>; companyIndustries: z.ZodOptional>; minCompanyHeadcount: z.ZodOptional; maxCompanyHeadcount: z.ZodOptional; minYearsAtCompany: z.ZodOptional; pastCompanyName: z.ZodOptional; pastJobTitle: z.ZodOptional; schoolName: z.ZodOptional; country: z.ZodOptional; city: z.ZodOptional; recentlyChangedJobs: z.ZodOptional; minConnections: z.ZodOptional; excludeCompanies: z.ZodOptional>; excludeProfiles: z.ZodOptional>; limit: z.ZodOptional>; cursor: z.ZodOptional; enrichEmails: z.ZodDefault>; includePersonalEmails: z.ZodDefault>; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { provider: "crustdata" | "fullenrich"; enrichEmails: boolean; includePersonalEmails: boolean; credentials?: Partial> | undefined; limit?: number | undefined; cursor?: string | undefined; city?: string | undefined; country?: string | undefined; location?: string | undefined; companyName?: string | undefined; companyLinkedinUrl?: string | undefined; skills?: string[] | undefined; schoolName?: string | undefined; languages?: string[] | undefined; recentlyChangedJobs?: boolean | undefined; companyIndustries?: string[] | undefined; jobTitle?: string | undefined; jobTitles?: string[] | undefined; locationRadius?: { location: string; radiusMiles: number; } | undefined; minYearsExperience?: number | undefined; maxYearsExperience?: number | undefined; seniorityLevels?: string[] | undefined; functionCategories?: string[] | undefined; minCompanyHeadcount?: number | undefined; maxCompanyHeadcount?: number | undefined; minYearsAtCompany?: number | undefined; pastCompanyName?: string | undefined; pastJobTitle?: string | undefined; minConnections?: number | undefined; excludeCompanies?: string[] | undefined; excludeProfiles?: string[] | undefined; }, { credentials?: Partial> | undefined; provider?: "crustdata" | "fullenrich" | undefined; limit?: number | undefined; cursor?: string | undefined; city?: string | undefined; country?: string | undefined; location?: string | undefined; companyName?: string | undefined; companyLinkedinUrl?: string | undefined; skills?: string[] | undefined; schoolName?: string | undefined; languages?: string[] | undefined; recentlyChangedJobs?: boolean | undefined; companyIndustries?: string[] | undefined; jobTitle?: string | undefined; jobTitles?: string[] | undefined; locationRadius?: { location: string; radiusMiles: number; } | undefined; minYearsExperience?: number | undefined; maxYearsExperience?: number | undefined; seniorityLevels?: string[] | undefined; functionCategories?: string[] | undefined; minCompanyHeadcount?: number | undefined; maxCompanyHeadcount?: number | undefined; minYearsAtCompany?: number | undefined; pastCompanyName?: string | undefined; pastJobTitle?: string | undefined; minConnections?: number | undefined; excludeCompanies?: string[] | undefined; excludeProfiles?: string[] | undefined; enrichEmails?: boolean | undefined; includePersonalEmails?: boolean | undefined; }>; declare const PeopleSearchToolResultSchema: z.ZodObject<{ people: z.ZodArray; title: z.ZodNullable; headline: z.ZodNullable; linkedinUrl: z.ZodNullable; profilePictureUrl: z.ZodNullable; emails: z.ZodNullable>; twitterHandle: z.ZodNullable; websites: z.ZodNullable>; enrichedWorkEmail: z.ZodOptional>; enrichedPersonalEmail: z.ZodOptional>; enrichedWorkEmails: z.ZodOptional; }, "strip", z.ZodTypeAny, { email: string; status?: string | undefined; }, { email: string; status?: string | undefined; }>, "many">>>; enrichedPersonalEmails: z.ZodOptional; }, "strip", z.ZodTypeAny, { email: string; status?: string | undefined; }, { email: string; status?: string | undefined; }>, "many">>>; seniorityLevel: z.ZodNullable; yearsOfExperience: z.ZodNullable; recentlyChangedJobs: z.ZodNullable; location: z.ZodNullable; locationCity: z.ZodNullable; locationCountry: z.ZodNullable; skills: z.ZodNullable>; languages: z.ZodNullable>; summary: z.ZodNullable; numConnections: z.ZodNullable; currentEmployers: z.ZodNullable; companyName: z.ZodNullable; companyLinkedinUrl: z.ZodNullable; companyDomainUrl: z.ZodNullable; seniorityLevel: z.ZodNullable; functionCategory: z.ZodNullable; startDate: z.ZodNullable>; yearsAtCompany: z.ZodNullable; companyHeadcount: z.ZodNullable; companyIndustries: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }, { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }>, "many">>; pastEmployers: 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; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }, { title: string | null; name: string | null; summary: string | null; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }>, "many">; totalCount: z.ZodNumber; nextCursor: z.ZodOptional; warnings: z.ZodOptional>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { error: string; success: boolean; people: { title: string | null; name: string | null; summary: string | null; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }[]; totalCount: number; nextCursor?: string | undefined; warnings?: string[] | undefined; }, { error: string; success: boolean; people: { title: string | null; name: string | null; summary: string | null; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }[]; totalCount: number; nextCursor?: string | undefined; warnings?: string[] | undefined; }>; type PeopleSearchToolParams = z.output; type PeopleSearchToolResult = z.output; type PeopleSearchToolParamsInput = z.input; export type PersonResult = z.output; export type PeopleSearchResult = PeopleSearchToolResult; /** * People Search Tool * * Agent-friendly tool for searching and discovering professionals. Defaults to * FullEnrich's /people/search; falls back to Crustdata PersonDB only when the * caller opts in (provider='crustdata') or relies on a filter FullEnrich * doesn't support (locationRadius, functionCategories, schoolName, pastJobTitle, * minYearsExperience/maxYearsExperience, recentlyChangedJobs, minConnections, * excludeCompanies, excludeProfiles, languages). * * Features: * - Search by company name/URL, job title, location, or skills * - Filter by seniority level (CXO, VP, Director, etc.) * - Filter by years of experience * - Full profiles with work history and education * - Exclude specific companies or profiles * * Use cases: * - Find specific professionals at a company * - Search for people by job title across companies * - Discover professionals with specific skills * - Find senior executives (CXOs, VPs, Directors) * - Sales prospecting and lead generation * * Credits: 3 credits per 100 results returned */ export declare class PeopleSearchTool extends ToolBubble { static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ provider: z.ZodDefault>; companyName: z.ZodOptional; companyLinkedinUrl: z.ZodOptional; jobTitle: z.ZodOptional; jobTitles: z.ZodOptional>; location: z.ZodOptional; locationRadius: z.ZodOptional>; skills: z.ZodOptional>; languages: z.ZodOptional>; minYearsExperience: z.ZodOptional; maxYearsExperience: z.ZodOptional; seniorityLevels: z.ZodOptional>; functionCategories: z.ZodOptional>; companyIndustries: z.ZodOptional>; minCompanyHeadcount: z.ZodOptional; maxCompanyHeadcount: z.ZodOptional; minYearsAtCompany: z.ZodOptional; pastCompanyName: z.ZodOptional; pastJobTitle: z.ZodOptional; schoolName: z.ZodOptional; country: z.ZodOptional; city: z.ZodOptional; recentlyChangedJobs: z.ZodOptional; minConnections: z.ZodOptional; excludeCompanies: z.ZodOptional>; excludeProfiles: z.ZodOptional>; limit: z.ZodOptional>; cursor: z.ZodOptional; enrichEmails: z.ZodDefault>; includePersonalEmails: z.ZodDefault>; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { provider: "crustdata" | "fullenrich"; enrichEmails: boolean; includePersonalEmails: boolean; credentials?: Partial> | undefined; limit?: number | undefined; cursor?: string | undefined; city?: string | undefined; country?: string | undefined; location?: string | undefined; companyName?: string | undefined; companyLinkedinUrl?: string | undefined; skills?: string[] | undefined; schoolName?: string | undefined; languages?: string[] | undefined; recentlyChangedJobs?: boolean | undefined; companyIndustries?: string[] | undefined; jobTitle?: string | undefined; jobTitles?: string[] | undefined; locationRadius?: { location: string; radiusMiles: number; } | undefined; minYearsExperience?: number | undefined; maxYearsExperience?: number | undefined; seniorityLevels?: string[] | undefined; functionCategories?: string[] | undefined; minCompanyHeadcount?: number | undefined; maxCompanyHeadcount?: number | undefined; minYearsAtCompany?: number | undefined; pastCompanyName?: string | undefined; pastJobTitle?: string | undefined; minConnections?: number | undefined; excludeCompanies?: string[] | undefined; excludeProfiles?: string[] | undefined; }, { credentials?: Partial> | undefined; provider?: "crustdata" | "fullenrich" | undefined; limit?: number | undefined; cursor?: string | undefined; city?: string | undefined; country?: string | undefined; location?: string | undefined; companyName?: string | undefined; companyLinkedinUrl?: string | undefined; skills?: string[] | undefined; schoolName?: string | undefined; languages?: string[] | undefined; recentlyChangedJobs?: boolean | undefined; companyIndustries?: string[] | undefined; jobTitle?: string | undefined; jobTitles?: string[] | undefined; locationRadius?: { location: string; radiusMiles: number; } | undefined; minYearsExperience?: number | undefined; maxYearsExperience?: number | undefined; seniorityLevels?: string[] | undefined; functionCategories?: string[] | undefined; minCompanyHeadcount?: number | undefined; maxCompanyHeadcount?: number | undefined; minYearsAtCompany?: number | undefined; pastCompanyName?: string | undefined; pastJobTitle?: string | undefined; minConnections?: number | undefined; excludeCompanies?: string[] | undefined; excludeProfiles?: string[] | undefined; enrichEmails?: boolean | undefined; includePersonalEmails?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ people: z.ZodArray; title: z.ZodNullable; headline: z.ZodNullable; linkedinUrl: z.ZodNullable; profilePictureUrl: z.ZodNullable; emails: z.ZodNullable>; twitterHandle: z.ZodNullable; websites: z.ZodNullable>; enrichedWorkEmail: z.ZodOptional>; enrichedPersonalEmail: z.ZodOptional>; enrichedWorkEmails: z.ZodOptional; }, "strip", z.ZodTypeAny, { email: string; status?: string | undefined; }, { email: string; status?: string | undefined; }>, "many">>>; enrichedPersonalEmails: z.ZodOptional; }, "strip", z.ZodTypeAny, { email: string; status?: string | undefined; }, { email: string; status?: string | undefined; }>, "many">>>; seniorityLevel: z.ZodNullable; yearsOfExperience: z.ZodNullable; recentlyChangedJobs: z.ZodNullable; location: z.ZodNullable; locationCity: z.ZodNullable; locationCountry: z.ZodNullable; skills: z.ZodNullable>; languages: z.ZodNullable>; summary: z.ZodNullable; numConnections: z.ZodNullable; currentEmployers: z.ZodNullable; companyName: z.ZodNullable; companyLinkedinUrl: z.ZodNullable; companyDomainUrl: z.ZodNullable; seniorityLevel: z.ZodNullable; functionCategory: z.ZodNullable; startDate: z.ZodNullable>; yearsAtCompany: z.ZodNullable; companyHeadcount: z.ZodNullable; companyIndustries: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }, { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }>, "many">>; pastEmployers: 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; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }, { title: string | null; name: string | null; summary: string | null; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }>, "many">; totalCount: z.ZodNumber; nextCursor: z.ZodOptional; warnings: z.ZodOptional>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { error: string; success: boolean; people: { title: string | null; name: string | null; summary: string | null; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }[]; totalCount: number; nextCursor?: string | undefined; warnings?: string[] | undefined; }, { error: string; success: boolean; people: { title: string | null; name: string | null; summary: string | null; emails: string[] | null; location: string | null; headline: string | null; seniorityLevel: string | null; skills: string[] | null; linkedinUrl: string | null; education: { fieldOfStudy: string | null; instituteName: string | null; degreeName: string | null; }[] | null; languages: string[] | null; websites: string[] | null; profilePictureUrl: string | null; twitterHandle: string | null; yearsOfExperience: number | null; recentlyChangedJobs: boolean | null; locationCity: string | null; locationCountry: string | null; numConnections: number | null; currentEmployers: { title: string | null; companyName: string | null; companyLinkedinUrl: string | null; seniorityLevel: string | null; startDate: string | number | null; companyDomainUrl: string | null; functionCategory: string | null; yearsAtCompany: number | null; companyHeadcount: number | null; companyIndustries: string[] | null; }[] | null; pastEmployers: { title: string | null; companyName: string | null; startDate: string | number | null; endDate: string | number | null; }[] | null; enrichedWorkEmail?: string | null | undefined; enrichedPersonalEmail?: string | null | undefined; enrichedWorkEmails?: { email: string; status?: string | undefined; }[] | null | undefined; enrichedPersonalEmails?: { email: string; status?: string | undefined; }[] | null | undefined; }[]; totalCount: number; nextCursor?: string | undefined; warnings?: string[] | undefined; }>; static readonly shortDescription = "Comprehensive people search by company, title, location, skills, with optional email enrichment"; static readonly longDescription: string; static readonly alias = "people"; static readonly type = "tool"; constructor(params?: PeopleSearchToolParamsInput, context?: BubbleContext); performAction(): Promise; private searchCrustdata; /** * Search via FullEnrich v2 /people/search. Maps tool params to FullEnrich * filters, collecting warnings for any filter the provider cannot honor so * callers can see why results may look narrower than expected. * * When `enrichEmails=true`, runs the FullEnrich bulk-enrichment pipeline as a * post step (same path as the Crustdata branch) because /people/search does * not return emails by itself. */ private searchFullEnrich; /** * Normalize a FullEnrich person record to the shared PersonResult shape. */ private transformFullEnrichPerson; /** * Transform API profiles to simplified format */ private transformProfiles; /** * Transform a single PersonDB profile to PersonResult format */ private transformProfile; /** * Create an error result */ private createErrorResult; /** * Enrich people with email data using FullEnrich. * * Batches up to 100 contacts per request and polls every 5s up to 120s per * batch. Bulk enrichment is slow by design — expect 30–120s of wall time for * a full batch. Returns both the enriched people and a list of warning * strings so callers can surface "emails failed to arrive" to the user * instead of silently returning un-enriched people. */ private enrichPeopleEmails; /** * Sleep helper for polling */ private sleep; } export {}; //# sourceMappingURL=people-search-tool.d.ts.map