///
import { MutationBase, MutationContext, MutationEvent } from '@0xcert/scaffold';
import { EventEmitter } from 'events';
export declare enum MutationStatus {
INITIALIZED = 0,
PENDING = 1,
COMPLETED = 2
}
export declare class Mutation extends EventEmitter implements MutationBase {
protected _id: string;
protected _confirmations: number;
protected _senderId: string;
protected _receiverId: string;
protected _provider: any;
protected _speed: number;
protected _timer: any;
protected _started: number;
protected _status: MutationStatus;
protected _context?: any;
protected _logs: any[];
constructor(provider: any, id: string, context?: MutationContext);
get id(): string;
get provider(): any;
get confirmations(): number;
get senderId(): string;
get receiverId(): string;
get logs(): any[];
isPending(): boolean;
isCompleted(): boolean;
emit(event: MutationEvent.CONFIRM, mutation: Mutation): any;
emit(event: MutationEvent.COMPLETE, mutation: Mutation): any;
emit(event: MutationEvent.ERROR, error: any): any;
on(event: MutationEvent.CONFIRM, handler: (m: Mutation) => any): any;
on(event: MutationEvent.COMPLETE, handler: (m: Mutation) => any): any;
on(event: MutationEvent.ERROR, handler: (e: any, m: Mutation) => any): any;
once(event: MutationEvent.CONFIRM, handler: (m: Mutation) => any): any;
once(event: MutationEvent.COMPLETE, handler: (m: Mutation) => any): any;
once(event: MutationEvent.ERROR, handler: (e: any, m: Mutation) => any): any;
off(event: MutationEvent.ERROR, handler: (e: any, m: Mutation) => any): any;
off(event: MutationEvent): any;
complete(): Promise;
forget(): this;
resolve(): Promise;
retry(): Promise;
cancel(): Promise;
protected resolveCurrentState(): Promise;
protected loopUntilCompleted(): Promise;
protected getTransactionObject(): Promise;
protected getTransactionReceipt(): Promise;
protected getLastBlock(): Promise;
protected parseLogs(): Promise;
}