import { BlockResponse } from '@taquito/rpc';
import { Observable, SchedulerLike } from 'rxjs';
import { Context } from '../context';
import { BatchWalletOperation } from './batch-operation';
import { DelegationWalletOperation } from './delegation-operation';
import { IncreasePaidStorageWalletOperation } from './increase-paid-storage-operation';
import { WalletOperation } from './operation';
import { OriginationWalletOperation } from './origination-operation';
import { TransactionWalletOperation } from './transaction-operation';
export declare function timeoutAfter<T>(timeoutMillisec: number): (source: Observable<T>) => Observable<T>;
export declare const createNewPollingBasedHeadObservable: (sharedHeadOb: Observable<BlockResponse>, context: Context, _scheduler?: SchedulerLike | undefined) => Observable<BlockResponse>;
export interface OperationFactoryConfig {
    blockIdentifier?: string;
}
export declare class OperationFactory {
    private context;
    constructor(context: Context);
    private sharedHeadObs;
    private createNewHeadObservable;
    private createPastBlockWalker;
    private createHeadObservableFromConfig;
    createOperation(hash: string, config?: OperationFactoryConfig): Promise<WalletOperation>;
    createBatchOperation(hash: string, config?: OperationFactoryConfig): Promise<BatchWalletOperation>;
    createTransactionOperation(hash: string, config?: OperationFactoryConfig): Promise<TransactionWalletOperation>;
    createDelegationOperation(hash: string, config?: OperationFactoryConfig): Promise<DelegationWalletOperation>;
    createOriginationOperation(hash: string, config?: OperationFactoryConfig): Promise<OriginationWalletOperation>;
    createIncreasePaidStorageOperation(hash: string, config?: OperationFactoryConfig): Promise<IncreasePaidStorageWalletOperation>;
}
