import { type User, type DatabaseInterface, type AuthenticationService, type DatabaseInterfaceUser } from '@accounts/types';
import { AccountsServer } from '@accounts/server';
import { type OAuthProviders } from './types/oauth-providers';
import { ExecutionContext } from 'graphql-modules';
export declare class AccountsOauth<CustomUser extends User = User> implements AuthenticationService<CustomUser> {
    oauthProviders: OAuthProviders;
    context: ExecutionContext;
    server: AccountsServer;
    serviceName: string;
    private db;
    constructor(oauthProviders: OAuthProviders, db?: DatabaseInterface<CustomUser> | DatabaseInterfaceUser<CustomUser>, server?: AccountsServer);
    private getOAuthProvider;
    getOAuthProviders(): OAuthProviders;
    setUserStore(store: DatabaseInterfaceUser<CustomUser>): void;
    setSessionsStore(): void;
    authenticate(params: any): Promise<CustomUser | null>;
    unlink(userId: string, provider: string): Promise<void>;
}
