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';
import { TransferTicketWalletOperation } from './transfer-ticket-operation';
import { RegisterGlobalConstantWalletOperation } from './register-global-constant-operation';
export declare function timeoutAfter<T>(timeoutMillisec: number): (source: Observable<T>) => Observable<T>;
export declare const createNewPollingBasedHeadObservable: (sharedHeadOb: Observable<BlockResponse>, context: Context, _scheduler?: SchedulerLike) => 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>;
    createTransferTicketOperation(hash: string, config?: OperationFactoryConfig): Promise<TransferTicketWalletOperation>;
    createDelegationOperation(hash: string, config?: OperationFactoryConfig): Promise<DelegationWalletOperation>;
    createOriginationOperation(hash: string, config?: OperationFactoryConfig): Promise<OriginationWalletOperation>;
    createIncreasePaidStorageOperation(hash: string, config?: OperationFactoryConfig): Promise<IncreasePaidStorageWalletOperation>;
    createRegisterGlobalConstantOperation(hash: string, config?: OperationFactoryConfig): Promise<RegisterGlobalConstantWalletOperation>;
}
