import { Observable } from 'rxjs';
import { LoginProvider } from './entities/loginProvider';
import { SocialUser } from './entities/user';
export interface SocialServiceConfigItem {
    provider: LoginProvider;
}
export declare class SocialServiceConfig {
    private providers;
    constructor(providers?: SocialServiceConfigItem[]);
    getProviders(): Map<string, LoginProvider>;
    private addProvider(provider);
    addFacebook(clientId: string): SocialServiceConfig;
    addGoogle(clientId: string): SocialServiceConfig;
    addLinkedIn(clientId: string): SocialServiceConfig;
}
export declare class SocialService {
    private static readonly LOGIN_PROVIDER_NOT_FOUND;
    private static readonly USER_POPUP_CLOSE;
    private providers;
    private _user;
    private _authState;
    readonly authState: Observable<SocialUser>;
    constructor(config: SocialServiceConfig);
    isSocialLoggedIn(): boolean;
    sharing(providerType: string, share?: any): Promise<{}>;
    facebookSharing(share?: any): Promise<{}>;
    signIn(providerType: string, scopes?: [string]): Promise<SocialUser>;
    signOut(): Promise<any>;
}
