import { OAuth2Provider } from '../typings/oauth2-provider.interface';
import { TokenPairDto } from '../dto/token-pair.dto';
import { MemberOAuthRecordEntity } from '../models/member-oauth-record.entity';
import { Repository } from 'typeorm';
import { MemberBaseService } from './member-base.service';
import { BaseMemberEntity } from '../models/base-member.entity';
export declare class OAuthService {
    private readonly providers;
    private readonly baseMemberRepo;
    private readonly memberOAuthRecordRepo;
    private readonly memberBaseService;
    constructor(providers: OAuth2Provider[], baseMemberRepo: Repository<BaseMemberEntity>, memberOAuthRecordRepo: Repository<MemberOAuthRecordEntity>, memberBaseService: MemberBaseService);
    getGoogleOAuthLoginUrl(): Promise<string>;
    getFacebookOAuthLoginUrl(): Promise<string>;
    getCustomOAuthLoginUrl(channel: string): Promise<string>;
    loginWithGoogleOAuth2Code(code: string, state?: string): Promise<TokenPairDto & {
        state?: string;
    }>;
    loginWithFacebookOAuth2Code(code: string, state?: string): Promise<TokenPairDto & {
        state?: string;
    }>;
    loginWithCustomOAuth2Code(channel: string, code: string, state?: string): Promise<TokenPairDto & {
        state?: string;
    }>;
    private loginWithOAuthIdentifier;
}
