import { Civil, EthAddress } from "@joincivil/core";
import * as React from "react";
import { Subscription } from "rxjs/Subscription";
import { Transaction, TransactionButtonInnerProps } from "./TransactionButton";
export interface DetailTransactionButtonProps {
    civil?: Civil;
    transactions: Transaction[];
    estimateFunctions?: Array<(...args: any[]) => Promise<number>>;
    requiredNetwork?: string;
    Button?: React.FunctionComponent<TransactionButtonInnerProps>;
    noModal?: boolean;
    disabled?: boolean;
    preExecuteTransactions?(): any;
}
export interface DetailTransactionButtonState {
    price: number;
    priceFailed: boolean;
    isProgressModalVisible: boolean;
    currentNetwork: string;
    currentAccount?: EthAddress;
    ethereumUpdates?: Subscription;
}
export declare const TransactionPopUpWarning: import("styled-components").StyledComponent<"p", any, {}, never>;
export declare class DetailTransactionButton extends React.Component<DetailTransactionButtonProps, DetailTransactionButtonState> {
    constructor(props: DetailTransactionButtonProps);
    componentWillReceiveProps(nextProps: DetailTransactionButtonProps): Promise<void>;
    divinePrice(estimateFunctions?: Array<() => Promise<number>>): Promise<void>;
    componentDidMount(): Promise<void>;
    componentWillUnmount(): Promise<void>;
    createEthereumSubscription(civil?: Civil): void;
    unbscribeEthereum(): void;
    render(): JSX.Element;
    isDisabled(): boolean;
    renderNoMetaMask(): JSX.Element;
    renderMetaMaskLocked(): JSX.Element;
    renderWrongNetwork(): JSX.Element;
    renderCostsEstimates(): JSX.Element;
    renderTransactionDetails(): JSX.Element;
    renderDetails(): JSX.Element;
}
