import { ConfigService } from '@nestjs/config';
export interface LdapUserData {
    mail: string;
    displayName: string;
    givenName: string;
    sn: string;
    cn: string;
    department?: string;
    title?: string;
    company?: string;
    physicalDeliveryOfficeName?: string;
    employeeID?: string;
    sAMAccountName: string;
    userPrincipalName: string;
    manager?: string;
    directReports?: string[];
    memberOf?: string[];
    proxyAddresses?: string[];
    distinguishedName: string;
    whenCreated?: string;
    whenChanged?: string;
}
export declare class LdapService {
    private configService;
    private readonly logger;
    private readonly ldapApiToken;
    private readonly ldapApiHost;
    private readonly ldapApiPort;
    constructor(configService: ConfigService);
    authenticate(username: string, password: string): Promise<LdapUserData>;
    healthCheck(): Promise<boolean>;
    private callLdapApi;
    private normalizeLdapData;
    private extractPrimaryEmail;
    extractGroupNames(memberOf: string[]): string[];
    isMemberOf(memberOf: string[], groupName: string): boolean;
    extractUsernameFromDn(dn: string): string | null;
    searchUsers(filter?: string, attributes?: string[], searchBase?: string): Promise<LdapUserData[]>;
    getAllActiveUsers(): Promise<LdapUserData[]>;
    getUsersByDepartment(department: string): Promise<LdapUserData[]>;
    getUsersByEmailDomain(domain: string): Promise<LdapUserData[]>;
    getUserByUsername(username: string): Promise<LdapUserData | null>;
}
