import { CertificateEnvelope, CertificateFile, CertificateHistoryResponseEntryInterface, MaterialMassBalanceCertification, EntityDTO } from "@minespider/core-sdk";
import { MinespiderModel } from "./Model/MinespiderModel";
import { AllowanceEntry } from "@minespider/core-sdk/dist/types/domain/queries/getMaterialAllowancesQuery";
import { BaseMetadataInterface } from "@minespider/core-sdk/dist/types/service/metadata-service";
export interface Options {
    backendHost?: string;
    blockchainNode?: string;
    coreContractAddress?: string;
    balancesContractAddress?: string;
    certificatesContractAddress?: string;
    privateKey?: string;
}
export declare class MinespiderFacade {
    private minespiderModel;
    constructor(minespiderModel: MinespiderModel);
    downloadCertificateEnvelope(address: any): Promise<CertificateEnvelope>;
    createCertificate(certificate: any): Promise<string>;
    getCertificates(): Promise<any>;
    getCertificateById(certificateId: string): Promise<any>;
    sellCertificate(certificateUuid: string, amount: number, newOwnerAddress: string, publicFilesList: CertificateFile[], privateFilesList: CertificateFile[], newCertificateType?: number, meta?: BaseMetadataInterface): Promise<any>;
    readCertificateFileList(fileList: FileList): Promise<CertificateFile[]>;
    getCertificatePublicFiles(certificateId: string): Promise<any>;
    getCertificatePrivateFiles(certificateId: string): Promise<any>;
    getCertificateHistoryByCertificate(certificateUuid: string, depth?: number): Promise<CertificateHistoryResponseEntryInterface[]>;
    getCertificateHistoryByOwner(entityId: string): Promise<CertificateHistoryResponseEntryInterface[]>;
    getEntities(): Promise<EntityDTO[]>;
    getEntityById(entityId: string): Promise<any>;
    getEntitiesByName(entityName: string): Promise<EntityDTO[]>;
    createEntity(name: string, latitude: string, longitude: string, location: string, meta: {}, entityType: number, materialMassBalanceCertifications?: MaterialMassBalanceCertification[]): Promise<import("@minespider/core-sdk/dist/types/domain/keyPair").EthereumAccount>;
    createCertifier(name: string, latitude: string, longitude: string, location: string, meta?: {}): Promise<import("@minespider/core-sdk/dist/types/domain/keyPair").EthereumAccount>;
    createProducer(name: string, latitude: string, longitude: string, location: string, meta?: {}): Promise<import("@minespider/core-sdk/dist/types/domain/keyPair").EthereumAccount>;
    setMassBalanceCertification(producerId: string, materialTaxonomyUuid: string, measurementUnitUuid: string, amount: number): Promise<any>;
    setMassBalanceCertificationForMultipleMaterials(producerId: string, materialMassBalanceCertifications: MaterialMassBalanceCertification[]): Promise<any>;
    getMassBalanceCertification(producerId: string, materialTaxonomyUuid: string, measurementUnitUuid: string): Promise<any>;
    getCurrentAccountAddress(): Promise<string>;
    downloadCertificatePublicFile(certificateId: string, fileAddress: string): Promise<CertificateFile>;
    downloadCertificatePrivateFile(certificateId: string, fileAddress: string): Promise<CertificateFile>;
    getCertificateManifest(certificateId: string): Promise<import("@minespider/core-sdk/dist/types/domain/certificate").CertificateManifest>;
    getMaterialAllowances(balanceHolderUuid: string, materialTypeUuid: string, measurementUnitUuid: string): Promise<AllowanceEntry[]>;
    getMaterialTaxonomies(): Promise<import("@minespider/core-sdk/dist/types/service/material-service").MaterialTaxonomy[]>;
    getMaterialTypes(): Promise<import("@minespider/core-sdk/dist/types/service/material-service").MaterialType[]>;
    getMeasurementUnits(): Promise<import("@minespider/core-sdk/dist/types/service/measurement-units-service").MeasurementUnit[]>;
    getMeasurementUnitTypes(): Promise<import("@minespider/core-sdk/dist/types/service/measurement-units-service").MeasurementUnitType[]>;
    getPrivateMetadata(certificateUuid: string, path?: string): Promise<unknown>;
    getPublicMetadata(certificateUuid: string, path?: string): Promise<unknown>;
    getCertificateOwner(certificateId: string): Promise<EntityDTO>;
    getCertificateParentOwner(certificateId: string): Promise<EntityDTO>;
    getBalanceHolderUuid(): Promise<string>;
    acceptCertificate(certificateUuid: string): Promise<void>;
    getCertificatesFromCertificateEnvelopes(): Promise<any>;
}
//# sourceMappingURL=MinespiderFacade.d.ts.map