import * as React from "react";
import { FirebaseDatabaseProviderState } from "../types";
export { FirebaseDatabaseProvider } from "./FirebaseDatabaseProvider";
export declare type Nullable<T> = T | null;
export declare type FirebaseTransactionProps = {
    path: string;
    children: ({ runTransaction }: {
        runTransaction: RunTransaction;
    }) => React.ReactNode;
};
export declare type FirebaseDatabaseTransactionWithContextProps = FirebaseTransactionProps & FirebaseDatabaseProviderState;
export declare type RunTransaction = ({ reducer }: {
    reducer: (value: any) => any;
}) => Promise<{
    path: FirebaseTransactionProps["path"];
}>;
export declare class FirebaseDatabaseTransactionWithContext extends React.Component<FirebaseDatabaseTransactionWithContextProps> {
    createTransactionRunner: () => RunTransaction;
    shouldComponentUpdate(nextProps: FirebaseDatabaseTransactionWithContextProps): boolean;
    render(): any;
}
export declare class FirebaseDatabaseTransaction extends React.Component<FirebaseTransactionProps> {
    render(): JSX.Element;
}
