import { CertificateDTO, CertificateEnvelope, CertificateFile, CertificateHistoryResponseEntryInterface, Minespider, FileMetadata, MaterialMassBalanceCertification, EntityDTO } from "@minespider/core-sdk";
import { AllowanceEntry } from "@minespider/core-sdk/dist/types/domain/queries/getMaterialAllowancesQuery";
import { BaseMetadataInterface } from "@minespider/core-sdk/dist/types/service/metadata-service";
export interface ParsedCertificate extends CertificateDTO {
    metadataFiles: {
        public: FileMetadata[];
        private: FileMetadata[];
    };
}
export declare class MinespiderModel {
    private minespider;
    private cacheAdapter;
    private wallet;
    constructor(minespider: Minespider, mnemonic: string, certificateCacheServiceEndpoint: string);
    getCertificateById(id: string): Promise<any>;
    getCertificateHistoryByCertificate(certificateUuid: string, parentsDepth?: number, childrenDepth?: number): Promise<CertificateHistoryResponseEntryInterface[]>;
    getCertificateHistoryByOwner(entityId: string): Promise<CertificateHistoryResponseEntryInterface[]>;
    getCertificates(): Promise<any>;
    getCertificatesFromCertificateEnvelopes(): Promise<any>;
    private refreshEntitiesCache;
    createEntity(name: string, latitude: string, longitude: string, location: string, meta: object, 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>;
    modifyMassBalanceCertification(producerId: string, materialTaxonomyUuid: string, measurementUnitUuid: string, amount: number): Promise<any>;
    modifyMassBalanceCertificationForMultipleMaterials(producerId: string, materialMassBalanceCertifications: MaterialMassBalanceCertification[]): Promise<any>;
    getEntityDetails(entityId: string): Promise<EntityDTO>;
    getEntitiesByName(entityName: string): Promise<EntityDTO[]>;
    getEntities(): Promise<EntityDTO[]>;
    getProducerMBCertification(producerId: string, materialTaxonomyUuid: string, measurementUnitUuid: string): Promise<any>;
    downloadCertificateEnvelope(address: string): Promise<CertificateEnvelope>;
    createCertificate(certificate: any): Promise<string>;
    sellCertificate(certificateUuid: string, amount: number, newOwnerAddress: string, publicFilesList: CertificateFile[], privateFilesList: CertificateFile[], newCertificateType?: number, meta?: BaseMetadataInterface): Promise<any>;
    getCertificatePublicFiles(certificateUuid: string): Promise<any>;
    getCertificatePrivateFiles(certificateUuid: string): Promise<any>;
    downloadCertificatePublicFile(certificateUuid: string, fileAddress: string): Promise<CertificateFile>;
    downloadCertificatePrivateFile(certificateUuid: string, fileAddress: string): Promise<CertificateFile>;
    getCurrentAccountAddress(): Promise<string>;
    getCertificateManifest(certificateUuid: string): Promise<import("@minespider/core-sdk/dist/types/domain/certificate").CertificateManifest>;
    readCertificateFileList(fileList: FileList): Promise<CertificateFile[]>;
    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>;
    private getObjectPath;
    getCertificateOwner(certificateId: string): Promise<EntityDTO>;
    getCertificateParentOwner(certificateId: string): Promise<EntityDTO>;
    getBalanceHolderUuid(): Promise<string>;
    acceptCertificate(certificateUuid: string): Promise<void>;
}
//# sourceMappingURL=MinespiderModel.d.ts.map