import { OaAccount } from '../entities/oa-account.entity';
import 'dotenv/config';
import { RedisService } from '@/common/shared/redis.service';
import { OaAccountMasterService } from '@/modules/tenant/oa-account.service';
import { TenantConnectionManager } from '@/modules/tenant/tenant-connection.manager';
export declare class FacebookAuthService {
    protected tenantManager: TenantConnectionManager;
    private readonly redis;
    private readonly oaMasterService;
    protected entity: typeof OaAccount;
    private fbApi;
    constructor(tenantManager: TenantConnectionManager, redis: RedisService, oaMasterService: OaAccountMasterService);
    private getRepository;
    exchangeCodeForToken(code: string, appId: string, appSecret: string, redirectUri: string): Promise<string>;
    exchangeForLongLivedUserToken(shortLivedToken: string, appId: string, appSecret: string): Promise<{
        accessToken: string;
        expiresAt: Date;
    }>;
    getPagesWithLongLivedToken(longLivedUserToken: string): Promise<any>;
    savePagesToDb(pages: any[], userTokenExpiresAt: Date | null, subdomain: string, appId: string, appSecret: string): Promise<void>;
    handleFacebookCallback(code: string, stateId: string): Promise<{
        message: string;
        tenant: string;
        oaId: string;
        pages: any;
    }>;
    refreshAccessTokenFacebook(tenant: string, oaId: string): Promise<OaAccount>;
}
