import ContractBase, { TxParameters } from '../ContractBase'; import { InstantiableConfig } from '../../../Instantiable.abstract'; import { Account } from '../../../nevermined'; import { AssetPrice } from '../../../models'; import { Service, DDO } from '../../../ddo'; import { ContractReceipt } from 'ethers'; export declare enum ConditionState { Uninitialized = 0, Unfulfilled = 1, Fulfilled = 2, Aborted = 3 } export type ConditionMethod = 'fulfill' | 'fulfillForDelegate'; export interface ConditionContext { ddo: DDO; service: Service; price: AssetPrice; creator: string; } export interface ConditionParameters { list: any[]; params: (method: ConditionMethod, arg: Extra) => Promise; } export interface ConditionInstanceSmall { list: any[]; seed: string; id: string; agreementId: string; condition: string; } export interface ConditionInstance extends ConditionInstanceSmall { params: (method: ConditionMethod, arg: Extra) => Promise; } export declare const conditionStateNames: string[]; export declare abstract class ConditionSmall extends ContractBase { static getInstance(config: InstantiableConfig, conditionName: string, conditionsClass: any, optional?: boolean): Promise; hashValues(...args: any[]): Promise; abstract fulfill(agreementId: string, ...args: any[]): any; fulfillPlain(agreementId: string, args: any[], from?: Account, txParams?: TxParameters, method?: ConditionMethod): Promise; generateIdHash(agreementId: string, ...values: any[]): Promise; generateId(agreementId: string, valueHash: string): Promise; generateIdWithSeed(agreementId: string, valueHash: string): Promise<[string, string]>; abortByTimeOut(agreementId: string, from?: Account, params?: TxParameters): Promise; getConditionFulfilledEvent(agreementId: string): import("../../..").EventResult; } export declare abstract class Condition> extends ConditionSmall { static getInstance(config: InstantiableConfig, conditionName: string, conditionsClass: any, optional?: boolean): Promise & any>; params(...args: any[]): ConditionParameters; hashValues(...args: any[]): Promise; hashValuesPlain(...args: any[]): Promise; abstract paramsFromDDO(ctx: Ctx, ...args: ConditionInstanceSmall[]): Promise>; instanceFromDDO(agreementId: string, ctx: Ctx, ...args: ConditionInstanceSmall[]): Promise>; fulfillInstance(cond: ConditionInstance, additionalParams: Extra, from?: Account, txParams?: TxParameters, method?: ConditionMethod): Promise; abstract fulfillWithNode(cond: ConditionInstance, additionalParams: Extra, from?: Account, txParams?: TxParameters): Promise; instance(agreementId: string, params: ConditionParameters): Promise>; } export declare abstract class ProviderCondition> extends Condition { fulfillWithNode(cond: ConditionInstance, additionalParams: Extra, from?: Account, txParams?: TxParameters): Promise; nodeMethod(): ConditionMethod; } export declare abstract class ConsumerCondition> extends Condition { fulfillWithNode(_cond: ConditionInstance, _additionalParams: Extra, _from?: Account, _txParams?: TxParameters): Promise; }