///
import BigNumber from 'bignumber.js';
import Web3 = require('web3');
import { TransactionReceipt } from 'web3/types';
import RequestFactory from './requestFactory/RequestFactory';
import { Util } from '.';
import { ITransactionRequest } from './transactionRequest/ITransactionRequest';
export declare enum TemporalUnit {
BLOCK = 1,
TIME = 2
}
declare type Address = string;
export declare const MINIMUM_WINDOW_SIZE_BLOCK: BigNumber;
export declare const CLAIM_WINDOW_SIZE_BLOCK = 255;
export declare const DEFAULT_BOUNTY: BigNumber;
export declare const DEFAULT_GAS_PRICE: BigNumber;
export declare const DEFAULT_WINDOW_SIZE_BLOCK: BigNumber;
interface SchedulingOptions {
toAddress: Address;
windowStart: BigNumber;
timestampScheduling?: boolean;
bounty?: BigNumber;
from?: Address;
callData?: string;
callGas?: BigNumber;
callValue?: BigNumber;
windowSize?: BigNumber;
gasPrice?: BigNumber;
fee?: BigNumber;
requiredDeposit?: BigNumber;
scheduleGas?: BigNumber;
}
export default class EAC {
util: Util;
private privateKey;
private web3;
constructor(web3: Web3, privateKey?: string);
computeEndowment(options: SchedulingOptions): Promise;
schedule(options: SchedulingOptions): Promise;
getTxRequestFromReceipt(receipt: TransactionReceipt): string;
validateScheduleOptions(options: SchedulingOptions, endowment: string): Promise;
requestFactory(): Promise;
transactionRequest(address: string): ITransactionRequest;
transactionRequestFromReceipt(receipt: TransactionReceipt): ITransactionRequest;
private parseSchedulingParametersValidity;
private getScheduler;
private assertRequiredOptionsArePresent;
private fillMissingOptions;
}
export {};