///
import Web3 = require('web3');
import { Util } from '..';
import { RequestFactory as RequestFactoryContract } from '../../types/web3-contracts/RequestFactory';
import { EventEmitter } from 'events';
import { EventLog } from 'web3/types';
import { TemporalUnit } from '../eac';
import { BlockType } from 'web3/eth/types';
export default class RequestFactory {
instance: RequestFactoryContract;
util: Util;
private web3;
constructor(address: string, web3: Web3);
readonly address: string;
isKnownRequest(requestAddress: string): Promise;
watchRequestCreatedLogs(filter: {}, fromBlock: number, callback: (error: any, log: EventLog) => void): EventEmitter;
stopWatch(event: EventEmitter): Promise;
watchRequestsByBucket(bucket: number, callback: any): Promise;
calcBucket(windowStart: number, temporalUnit: TemporalUnit): number;
getRequestCreatedEvents(filter?: object, fromBlock?: BlockType, toBlock?: BlockType, topics?: string[]): Promise;
getRequestsByOwner(owner: string, startBlock: BlockType, endBlock: BlockType): Promise;
}