import { ServiceAccess, ServiceNFTAccess, ServiceNFTSales, ServicePlugin, ValidationParams, MetaData, MetaDataMain } from '../ddo'; import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'; import { TxParameters, AccessTemplate, NFT721AccessTemplate, NFT721SalesTemplate, NFTAccessTemplate, NFTSalesTemplate } from '../keeper'; import { Account } from './Account'; import { AssetPrice } from '../models'; export interface AccessProofTemplateParams { type: 'access-proof'; consumer: Account; consumerId: string; } export declare class AccessService extends Instantiable implements ServicePlugin { normal: AccessTemplate; constructor(config: InstantiableConfig, normal: AccessTemplate); createService(publisher: Account, metadata: MetaData, assetPrice: AssetPrice, erc20TokenAddress: string): Promise; process(params: ValidationParams, from: Account, txparams?: TxParameters): Promise; accept(params: ValidationParams): Promise; } export declare class NFTAccessService extends Instantiable implements ServicePlugin { normal: NFTAccessTemplate; normal721: NFT721AccessTemplate; constructor(config: InstantiableConfig); createService(publisher: Account, metadata: MetaData, assetPrice: AssetPrice, erc20TokenAddress: string): Promise; select(main: MetaDataMain): ServicePlugin; process(params: ValidationParams, from: Account, txparams?: TxParameters): Promise; accept(params: ValidationParams): Promise; } export declare class NFTSalesService extends Instantiable implements ServicePlugin { normal: NFTSalesTemplate; normal721: NFT721SalesTemplate; constructor(config: InstantiableConfig); createService(publisher: Account, metadata: MetaData, assetPrice: AssetPrice, erc20TokenAddress: string): Promise; select(main: MetaDataMain): ServicePlugin; process(params: ValidationParams, from: Account, txparams?: TxParameters): Promise; accept(params: ValidationParams): Promise; }