import { OperationContentsAndResult, OperationContentsOrigination } from '@taquito/rpc';
import { Context } from '../context';
import { DefaultContractType } from '../contract/contract';
import { RpcContractProvider } from '../contract/rpc-contract-provider';
import { Operation } from './operations';
import { FeeConsumingOperation, ForgedBytes, GasConsumingOperation, StorageConsumingOperation } from './types';
/**
 * @description Origination operation provide utility function to fetch newly originated contract
 *
 * @warn Currently support only one origination per operation
 */
export declare class OriginationOperation<TContract extends DefaultContractType = DefaultContractType> extends Operation implements GasConsumingOperation, StorageConsumingOperation, FeeConsumingOperation {
    private readonly params;
    private contractProvider;
    /**
     * @description Contract address of the newly originated contract
     */
    readonly contractAddress?: string;
    constructor(hash: string, params: OperationContentsOrigination, raw: ForgedBytes, results: OperationContentsAndResult[], context: Context, contractProvider: RpcContractProvider);
    get status(): import("@taquito/rpc").OperationResultStatusEnum | "unknown";
    get operationResults(): import("@taquito/rpc").OperationResultOrigination | undefined;
    get fee(): number;
    get gasLimit(): number;
    get storageLimit(): number;
    get consumedGas(): string | undefined;
    get consumedMilliGas(): string | undefined;
    get storageDiff(): string | undefined;
    get storageSize(): string | undefined;
    get errors(): import("@taquito/rpc").TezosGenericOperationError[] | undefined;
    /**
     * @description Provide the contract abstract of the newly originated contract
     * @throws {@link OriginationOperationError}
     */
    contract(confirmations?: number, timeout?: number): Promise<TContract>;
}
