import { Repository } from 'typeorm';
import { NestAuthUser } from '../../user/entities/user.entity';
import { NestAuthIdentity } from '../../user/entities/identity.entity';
import { BaseAuthProvider, LinkUserWith } from './base-auth.provider';
import { PhoneCredentialsDto } from '../../auth/dto/credentials/phone-credentials.dto';
export declare class PhoneAuthProvider extends BaseAuthProvider {
    protected readonly userRepository: Repository<NestAuthUser>;
    protected readonly authIdentityRepository: Repository<NestAuthIdentity>;
    providerName: string;
    constructor(userRepository: Repository<NestAuthUser>, authIdentityRepository: Repository<NestAuthIdentity>);
    findIdentity(providerUserId: string, tenantId?: string): Promise<NestAuthIdentity | null>;
    validate(credentials: PhoneCredentialsDto, tenantId?: string): Promise<{
        userId: string;
        phone: string;
        metadata: NestAuthUser;
    }>;
    getRequiredFields(): string[];
    linkToUser(userId: string, providerUserId: string, metadata?: Record<string, any>): Promise<void>;
    linkUserWith(): LinkUserWith;
}
//# sourceMappingURL=phone-auth.provider.d.ts.map