import { MailService } from './mail.js';
interface EmailAlias {
    name: string;
    email: string;
    displayName?: string;
    lastSeen?: Date;
    frequency?: number;
}
interface AliasMapping {
    aliases: Record<string, EmailAlias[]>;
    relationships: Record<string, string[]>;
    lastUpdated: Date;
}
export declare class AliasManager {
    private static instance;
    private aliasData;
    private cacheFile;
    private static readonly DEFAULT_ALIASES;
    private static readonly DEFAULT_RELATIONSHIPS;
    private constructor();
    static getInstance(): AliasManager;
    initialize(): Promise<void>;
    private loadCache;
    private saveCache;
    /**
     * Learn aliases from email history
     */
    learnFromEmails(mailService: MailService, accountId?: string): Promise<void>;
    private addEmailToAliases;
    private extractNamesFromEmail;
    /**
     * Resolve a name or partial name to email addresses
     */
    resolveAlias(nameOrEmail: string): string[];
    /**
     * Get all known variations of a name
     */
    getNameVariations(name: string): string[];
    /**
     * Get display name for an email address
     */
    getDisplayName(email: string): string | undefined;
    /**
     * Add a manual alias mapping
     */
    addAlias(name: string, email: string, displayName?: string): void;
    /**
     * Add a relationship between names
     */
    addRelationship(name1: string, name2: string): void;
    /**
     * Get all aliases for debugging/display
     */
    getAllAliases(): AliasMapping;
}
export {};
//# sourceMappingURL=aliasManager.d.ts.map