import { ConfigService } from '@nestjs/config';
import type { ImpersonatedRequest } from './dto/impersonated-request.dto';
import type { ResolveUuidsByEmailsResponse } from './dto/resolve-uuids-by-emails.dto';
import { PaginatedResponse } from './dto/paginated-response.dto';
import type { ListMasterUsersParams, MasterUser } from './dto/master-user.dto';
import type { LookupUserResponse } from './dto/lookup-user.dto';
import { AdvisorUsageMetricsResponse } from './dto/advisor-usage-metrics.dto';
import type { BatchFetchUsersResponse } from './dto/batch-fetch-users.dto';
export declare class MasterApiService {
    private readonly configService;
    private readonly logger;
    private readonly http;
    private tokenCache;
    private inflightTokenPromise;
    constructor(configService: ConfigService);
    listUsers(params?: ListMasterUsersParams): Promise<PaginatedResponse<MasterUser>>;
    searchUsers(params?: ListMasterUsersParams): Promise<{
        data: MasterUser[];
    }>;
    findUserByUuid(uuid: string): Promise<MasterUser | null>;
    searchUsersByEmail(email: string): Promise<MasterUser[]>;
    lookupUser(params: {
        uuid?: string;
        email?: string;
    }): Promise<LookupUserResponse>;
    getAdvisorUsageMetrics(userUuid: string): Promise<AdvisorUsageMetricsResponse>;
    private resolveImpersonationUserUuid;
    resolveUuidsByEmails(emails: string[]): Promise<ResolveUuidsByEmailsResponse>;
    batchFetchUsers(uuids: string[], emails: string[]): Promise<BatchFetchUsersResponse>;
    private static runConcurrent;
    private classifyEmailMatches;
    makeImpersonatedRequest<T>(userUuid: string, request: ImpersonatedRequest): Promise<T>;
    private buildUsersQuery;
    private executeWithBearerAuth;
    private invalidateMasterToken;
    private getToken;
    private issueToken;
    private isUnauthorizedAxios;
    private mapUpstreamError;
    private maskSensitiveForLog;
}
