import { DerivativeProviders, DerivativeType } from './Enums';
import { RpcService } from '../services/RpcService';
export interface IDerivativeService {
    readonly rpcService: RpcService;
    readonly address: string;
    readonly contract: any;
    retryRequest<T>(method: string, errorValue: T, ...options: any[]): Promise<T>;
    log(...args: any[]): Promise<void>;
    readonly nativeContract: any;
    getOwner(): Promise<string>;
    getDerivativeType(): Promise<number>;
    getComponentAddress(componentName: DerivativeProviders): Promise<string>;
    getProductStatus(): Promise<number>;
    getStatus(): Promise<number>;
    getName(): Promise<string>;
    getDescription(): Promise<string>;
    getVersion(): Promise<string>;
    fundType(): Promise<DerivativeType | null>;
    getSymbol(): Promise<string>;
}
