/// <reference types="react" />
import * as PropTypes from "prop-types";
import * as React from "react";
import { Component } from "react";
import * as ReactRedux from "react-redux";
export interface OAuthProps {
    readonly children?: any;
    readonly dispatch?: ReactRedux.Dispatch<{}>;
    readonly flow: "popup" | "redirect";
    readonly onClick?: (event?: React.FormEvent<HTMLElement>) => void;
    readonly onError?: (error: OAuthError) => void;
    readonly provider: "facebook" | "google" | "twitter" | "github";
    readonly scopes?: string[];
}
export interface OAuthError {
    message: string;
}
export declare class FirebaseOAuth extends Component<OAuthProps & ReactRedux.DispatchProp<any>, {}> {
    static propTypes: {
        flow: PropTypes.Requireable<any>;
        onClick: PropTypes.Requireable<any>;
        onError: PropTypes.Requireable<any>;
        provider: PropTypes.Requireable<any>;
        scopes: PropTypes.Requireable<any>;
    };
    authenticate: () => void;
    render(): React.ReactElement<any>;
}
declare const _default: React.ComponentClass<Pick<OAuthProps & ReactRedux.DispatchProp<any>, "children" | "flow" | "onClick" | "onError" | "provider" | "scopes">>;
export default _default;
