import ApolloClient from "apollo-client";
import { AuthLoginResponse } from "@joincivil/utils";
export interface AuthServiceOptions {
    apolloClient: ApolloClient<any>;
    onAuthChange(currentUser: any): void;
}
export declare class AuthService {
    currentUser?: any;
    loading: boolean;
    private apolloClient;
    private onAuthChange;
    constructor(opts: AuthServiceOptions);
    handleInitialState(): Promise<void>;
    getSession(): AuthLoginResponse | null;
    logout(): void;
    authenticate(signature: any): Promise<any>;
    signup(signature: any): Promise<any>;
    loginUser(session: any): Promise<void>;
    fetchCurrentUser(): Promise<void>;
    showWeb3Login(): Promise<void>;
    showWeb3Signup(): Promise<void>;
    /** If user is logged in, but web3 not enabled, enable it. */
    ensureLoggedInUserEnabled(): void;
    setShowWeb3Login(func: () => Promise<void>): void;
    setShowWeb3Signup(func: () => Promise<void>): void;
    setEnsureLoggedInUserEnabled(func: () => void): void;
    private graphqlLoginSignup;
}
