import type { Contact, PackumentVersion, Packument } from "@nodesecure/npm-types";
import { type EnforcedContact, type IlluminatedContact } from "./UnlitContact.class.ts";
export type { IlluminatedContact, EnforcedContact };
export interface ContactExtractorPackageMetadata {
    author?: Contact | null;
    maintainers: Contact[];
}
type ContactPackageMetaData = Partial<ContactExtractorPackageMetadata>;
export interface ContactExtractorFromDependenciesResult {
    illuminated: IlluminatedContact[];
    /**
     * List of email domains that are expired
     */
    expired: string[];
}
export interface ContactExtractorOptions {
    highlight: EnforcedContact[];
}
export declare class ContactExtractor {
    private highlighted;
    constructor(options: ContactExtractorOptions);
    fromDependencies(dependencies: Record<string, ContactExtractorPackageMetadata>): Promise<ContactExtractorFromDependenciesResult>;
    fromManifest(manifest: PackumentVersion): Promise<{
        expired: string[];
        illuminated: IlluminatedContact[];
    }>;
    fromPackument(packument: Packument): Promise<{
        expired: string[];
        illuminated: IlluminatedContact[];
    }>;
    private addDependencyToUnlitContacts;
    private processIlluminatedAndExpired;
}
export declare function extractMetadataContacts(metadata: ContactPackageMetaData): Contact[];
//# sourceMappingURL=ContactExtractor.class.d.ts.map