import type { Contact } from '../../@types/domain'; import type { SnovDominioDetalhado, SnovDominiosResponse, SnovEmail, SnovEmailsResponse, SnovLinkedinEmpresaResponse, SnovLinkedinPessoaResponse, SnovMeta, SnovTomador } from '@/@types/domain/snovTypes'; import { ContactType } from '../../components/contacts/contactTypes'; export declare const SNOV_EMAIL_LABEL = "E-mail confirmado"; export declare const normalizeContactValue: (type: ContactType, value: string) => string; export declare const dedupeContacts: (contacts: Contact[]) => Contact[]; export declare const normalizePartnerName: (name: string) => string; export declare function isHomonymBlocked(homonimo?: { blocked?: boolean; } | null): boolean; export declare function isSnovInProgress(meta?: SnovMeta | null): boolean; export declare function snovEmailsToContacts(emails: SnovEmail[], options?: { snovLabel?: boolean; }): Contact[]; export declare function extractContactsFromFinderXml(data: Document | undefined, rfbResponse: Document | undefined): { telefones: Contact[]; emails: Contact[]; }; export declare function mergeContactLists(finderDoc: Document | undefined, rfbDoc: Document | undefined, snovEmails?: SnovEmailsResponse | null): { telefones: Contact[]; emails: Contact[]; document: string; }; export declare const SNOV_COMPANY_DOMAIN_SOURCE = "snov:company-domain"; export type DominioViewItem = { domain: string; source?: string; }; export declare const dominioDetalhadoDomain: (detail: SnovDominioDetalhado) => string; export declare const dominioDetalhadoFontes: (detail: SnovDominioDetalhado) => string[]; export type ResolveAutoDomainResult = { domain: string; reason: 'single' | 'snov_company_domain' | 'snov_tagged' | 'razao_social_hint'; } | { domain: null; reason: 'none'; }; export declare function resolveAutoDomain(dominios?: string[] | null, dominiosDetalhados?: SnovDominioDetalhado[] | null, options?: { razaoSocial?: string | null; nomeFantasia?: string | null; }): ResolveAutoDomainResult; export declare function toDominiosView(snovDominios?: SnovDominiosResponse | null, legacyDominios?: string[]): DominioViewItem[]; export declare function mergeAllowedDomains(snovDominios?: SnovDominiosResponse | null, legacyDominios?: string[]): string[]; /** Extrai URL do LinkedIn corporativo (campo direto ou `companyProfile`). */ export declare function extractLinkedinEmpresaUrl(result?: SnovLinkedinEmpresaResponse | null): string | null; export declare function extractLinkedinEmpresaSize(result?: SnovLinkedinEmpresaResponse | null): string | null; export declare function extractLinkedinPessoaUrl(result?: SnovLinkedinPessoaResponse | null): string | null; export declare function isDomainAllowed(domain: string, allowedDomains: string[]): boolean; export type EnrichedPartnerFields = { linkedin?: string; snovEmails?: string[]; snovPhones?: string[]; snovHomonymBlocked?: boolean; }; export type SocioFetchStatus = 'pending' | 'loading' | 'found' | 'not_found' | 'blocked'; export declare function partnerCnpjDigits(cnpj?: string): string; export declare function partnerHasFullCnpj(cnpj?: string): boolean; export declare function partnerKeyFromRow(partner: { nome: string; cpf?: string; cnpj?: string; }): string; export declare function partnerCpfDigits(cpf?: string): string; export declare function partnerHasFullCpf(cpf?: string): boolean; export declare function tomadorFromLinkedinPessoa(partner: { nome: string; cpf?: string; }, response: SnovLinkedinPessoaResponse): SnovTomador; export declare function isLinkedinPessoaMatchForPartner(partner: { nome: string; cpf?: string; }, response: SnovLinkedinPessoaResponse): boolean; export declare function isTomadorMatchForPartner(partner: { nome: string; cpf?: string; }, tomador: SnovTomador): boolean; export declare function enrichPartnerFromTomador(tomador: SnovTomador | undefined, partner?: { nome: string; cpf?: string; }): EnrichedPartnerFields; export declare function socioFetchStatusFromTomador(tomador: SnovTomador | undefined, partner?: { nome: string; cpf?: string; }): SocioFetchStatus; export declare function enrichPartnersFromSocioCache(partners: T[], socioCache: Record): Array; export declare function resolveDomainForEmpresa(dominiosResponse?: SnovDominiosResponse | null): ResolveAutoDomainResult; export declare function isLinkedinEmpresaMatchForPartner(partner: { nome: string; cnpj?: string; }, response: SnovLinkedinEmpresaResponse): boolean; export type EmpresaEnrichmentEntry = { linkedin?: string; }; export declare function enrichPartnerFromEmpresaCache(partner: { nome: string; cnpj?: string; }, entry?: EmpresaEnrichmentEntry): EnrichedPartnerFields; export declare function empresaFetchStatusFromEntry(entry: EmpresaEnrichmentEntry | undefined): SocioFetchStatus; export declare function enrichPartnersFromEmpresaCache(partners: T[], empresaCache: Record, options?: { titularCnpj?: string; titularLinkedin?: string | null; }): Array; export declare function legacyDominiosFromConsulta(document: unknown): string[];