import { GetI } from '../../../dto/GetI';
import { PostI } from '../../../dto/PostI';
import { AccountFoundriesResponse, AccountListResponse, AccountNFTsResponse, AccountNonceResponse, AddPeerRequest, AddUserRequest, AliasOutputSearchParams, AssetsResponse, AuthInfoModel, AuthParam, Balance, BasicOutputSearchParams, BlobInfoResponse, BlobListResponse, BlobValueResponse, Block, BlockChildrenResponse, BlockIdentifier, BlockInfoResponse, BlockMetadata, BlocksByMilestoneIndexParams, BlocksByMilestoneParams, CallViewParamsChainId, ChainIDAndAgentIDParam, ChainIDAndBlobHashParam, ChainIDAndBlockIndexParam, ChainIDAndBlockParam, ChainIDAndContractHnameErrorParam, ChainIDAndContractHnameParam, ChainIDAndNftIDParam, ChainIDAndPeerParam, ChainIDAndRequestIDParam, ChainIDAndSerialNumberParam, ChainIDParam, ChainInfoResponse, ChainMessageMetrics, ChainRecord, CommitteeNode, ComputeWhiteFlagRequest, ComputedMerkleRootResult, ConsensusPipeMetrics, ConsensusWorkflowMetrics, ContractInfoResponse, ControlAddressesResponse, CreateSnapshotsRequest, CreateSnapshotsResponse, DKSharesInfo, DKSharesPostRequest, ErrorFormat, ErrorMessageFormatResponse, EstimateGasRequestOffledger, EstimateGasRequestOnledger, EventsResponse, FoundryOutputResponse, FoundryOutputsFilterParams, GovAllowedStateControllerAddressesResponse, GovChainInfoResponse, GovChainOwnerResponse, InfoResponse, IotaRpcSuite, JSONDict, LedgerUpdateList, LedgerUpdatesByAddressParams, LedgerUpdatesByMilestoneParams, LoginResponse, Milestone, MilestonePayload, MilestonesParams, NFTJSON, NativeTokenIDRegistryResponse, NftOutputSearchParams, NodeInfo, NodeMessageMetrics, NodeOwnerCertificateResponse, OffLedgerRequest, OutputIdResponse, OutputMetadata, OutputResponse, OutputSearchParams, PagedBlockIdsByMilestone, Peer, PeerResponse, PeeringNodeIdentityResponse, PeeringNodeStatusResponse, PeeringTrustRequest, PruneDatabaseRequest, PruneDatabaseResponse, ReceiptResponse, ReceiptsResponse, RequestIDsResponse, RequestProcessedResponse, RichestAddressesStatistics, StateResponse, StateValueParams, SubmitBlock, TipsResponse, TopRichestAddressesParams, TreasuryResponse, UTXOChanges, UpdateUserPasswordRequest, UpdateUserPermissionsRequest, User, VersionResponse, WaitForRequestParams, WealthDistributionStatistics } from '../../../dto/rpc/IotaRpcSuite';
export declare abstract class AbstractIotaRpc implements IotaRpcSuite {
    protected abstract post<T>(post: PostI): Promise<T>;
    protected abstract get<T>(get: GetI): Promise<T>;
    protected abstract delete<T>(get: GetI): Promise<T>;
    protected abstract put<T>(put: PostI): Promise<T>;
    private sendGet;
    getNodeHealth(): Promise<boolean | ErrorFormat>;
    getAvailableRouteGroups(): Promise<string[] | ErrorFormat>;
    getNodeInfo(): Promise<NodeInfo | ErrorFormat>;
    getTips(): Promise<TipsResponse | ErrorFormat>;
    submitBlock(params: SubmitBlock): Promise<BlockIdentifier | ErrorFormat>;
    getBlockDataById(params: BlockIdentifier): Promise<Block | ErrorFormat>;
    getBlockMetadata(params: BlockIdentifier): Promise<BlockMetadata | ErrorFormat>;
    findOutputById(outputId: string): Promise<OutputResponse | ErrorFormat>;
    getOutputMetadata(outputId: string): Promise<OutputMetadata | ErrorFormat>;
    getAllReceipts(): Promise<ReceiptsResponse | ErrorFormat>;
    getReceiptsByMigrationIndex(migratedAt: number): Promise<ReceiptsResponse | ErrorFormat>;
    getTransactionIncludedBlock(transactionId: string): Promise<Block | ErrorFormat>;
    findIncludedBlockMetadata(transactionId: string): Promise<BlockMetadata | ErrorFormat>;
    getMilestoneById(milestoneId: string): Promise<MilestonePayload | ErrorFormat>;
    getMilestoneUtxoChangesByMilestone(milestoneId: string): Promise<UTXOChanges | ErrorFormat>;
    lookupMilestoneByIndex(index: number): Promise<MilestonePayload | ErrorFormat>;
    getMilestoneUtxoChangesById(index: number): Promise<UTXOChanges | ErrorFormat>;
    computeMerkleRouteHashes(params: ComputeWhiteFlagRequest): Promise<ComputedMerkleRootResult | ErrorFormat>;
    pruneDatabase(request: PruneDatabaseRequest): Promise<PruneDatabaseResponse | ErrorFormat>;
    createSnapshot(requestData: CreateSnapshotsRequest): Promise<CreateSnapshotsResponse | ErrorFormat>;
    getTreasuryInformation(): Promise<TreasuryResponse | ErrorFormat>;
    getPeerInfo(peerId: string): Promise<PeerResponse | ErrorFormat>;
    getPeers(): Promise<PeerResponse | ErrorFormat>;
    addPeer(peerData: AddPeerRequest): Promise<Peer | ErrorFormat>;
    getOutputs(params: OutputSearchParams): Promise<OutputIdResponse>;
    getBasicOutputs(params: BasicOutputSearchParams): Promise<OutputIdResponse>;
    getAliasOutputs(params: AliasOutputSearchParams): Promise<OutputIdResponse>;
    getCurrentUnspentAliasOutput(aliasId: string): Promise<OutputIdResponse>;
    getFoundryOutputs(params: FoundryOutputsFilterParams): Promise<OutputIdResponse>;
    getCurrentUnspentFoundryOutput(foundryId: string): Promise<OutputIdResponse>;
    getNftOutputs(params: NftOutputSearchParams): Promise<OutputIdResponse>;
    getCurrentNftOutput(nftId: string): Promise<OutputIdResponse>;
    getBalanceByAddress(address: string): Promise<Balance>;
    getBlockChildren(blockId: string): Promise<BlockChildrenResponse>;
    getMilestones(params?: MilestonesParams): Promise<Milestone>;
    getBlocksByMilestone(params: BlocksByMilestoneParams): Promise<PagedBlockIdsByMilestone>;
    getBlocksByMilestoneIndex(params: BlocksByMilestoneIndexParams): Promise<PagedBlockIdsByMilestone>;
    getLedgerUpdatesByAddress(params: LedgerUpdatesByAddressParams): Promise<LedgerUpdateList>;
    getLedgerUpdatesByMilestone(params: LedgerUpdatesByMilestoneParams): Promise<LedgerUpdateList>;
    getTopRichestAddresses(params: TopRichestAddressesParams): Promise<RichestAddressesStatistics>;
    getTokenDistribution(ledgerIndex: number): Promise<WealthDistributionStatistics>;
    authenticate(params: AuthParam): Promise<LoginResponse>;
    authInfo(): Promise<AuthInfoModel>;
    getChains(): Promise<ChainInfoResponse[]>;
    getChainInfo(params: ChainIDAndBlockParam): Promise<ChainInfoResponse>;
    removeAccessNode(params: ChainIDAndPeerParam): Promise<void>;
    addAccessNode(params: ChainIDAndPeerParam): Promise<void>;
    activateChain(params: ChainIDParam): Promise<void>;
    callView(params: CallViewParamsChainId): Promise<JSONDict>;
    setChainRecord(params: ChainRecord): Promise<void>;
    getCommitteeInfo(params: ChainIDAndBlockParam): Promise<CommitteeNode>;
    getContracts(params: ChainIDAndBlockParam): Promise<ContractInfoResponse[]>;
    getAccounts(params: ChainIDAndBlockParam): Promise<AccountListResponse>;
    accountsGetAccountBalance(params: ChainIDAndAgentIDParam): Promise<AssetsResponse>;
    accountsGetAccountFoundries(params: ChainIDAndAgentIDParam): Promise<AccountFoundriesResponse>;
    accountsGetAccountNFTIDs(params: ChainIDAndAgentIDParam): Promise<AccountNFTsResponse>;
    accountsGetAccountNonce(params: ChainIDAndAgentIDParam): Promise<AccountNonceResponse>;
    accountsGetFoundryOutput(params: ChainIDAndSerialNumberParam): Promise<FoundryOutputResponse>;
    accountsGetNFTData(params: ChainIDAndNftIDParam): Promise<NFTJSON>;
    accountsGetNativeTokenIDRegistry(params: ChainIDAndBlockParam): Promise<NativeTokenIDRegistryResponse>;
    accountsGetTotalAssets(params: ChainIDAndBlockParam): Promise<AssetsResponse>;
    blobsGetAllBlobs(params: ChainIDAndBlockParam): Promise<BlobListResponse>;
    blobsGetBlobInfo(params: ChainIDAndBlobHashParam): Promise<BlobInfoResponse>;
    blobsGetBlobValue(params: ChainIDAndBlobHashParam): Promise<BlobValueResponse>;
    blocklogGetLatestBlockInfo(params: ChainIDAndBlockParam): Promise<BlockInfoResponse>;
    blocklogGetRequestReceiptsOfLatestBlock(params: ChainIDAndBlockParam): Promise<ReceiptResponse[]>;
    blocklogGetRequestIDsForLatestBlock(params: ChainIDAndBlockParam): Promise<RequestIDsResponse>;
    blocklogGetBlockInfo(params: ChainIDAndBlockIndexParam): Promise<BlockInfoResponse>;
    blocklogGetRequestReceiptsOfBlock(params: ChainIDAndBlockIndexParam): Promise<ReceiptResponse[]>;
    blocklogGetRequestIDsForBlock(params: ChainIDAndBlockIndexParam): Promise<RequestIDsResponse>;
    blocklogGetControlAddresses(params: ChainIDAndBlockParam): Promise<ControlAddressesResponse>;
    blocklogGetEventsOfLatestBlock(params: ChainIDAndBlockParam): Promise<EventsResponse>;
    blocklogGetEventsOfBlock(params: ChainIDAndBlockIndexParam): Promise<EventsResponse>;
    blocklogGetEventsOfContract(params: ChainIDAndContractHnameParam): Promise<EventsResponse>;
    blocklogGetEventsOfRequest(params: ChainIDAndRequestIDParam): Promise<EventsResponse>;
    blocklogGetRequestReceipt(params: ChainIDAndRequestIDParam): Promise<ReceiptResponse>;
    blocklogGetRequestIsProcessed(params: ChainIDAndRequestIDParam): Promise<RequestProcessedResponse>;
    errorsGetErrorMessageFormat(params: ChainIDAndContractHnameErrorParam): Promise<ErrorMessageFormatResponse>;
    getAllowedStateControllerAddresses(params: ChainIDAndBlockParam): Promise<GovAllowedStateControllerAddressesResponse>;
    governanceGetChainInfo(params: ChainIDAndBlockParam): Promise<GovChainInfoResponse>;
    governanceGetChainOwner(params: ChainIDAndBlockParam): Promise<GovChainOwnerResponse>;
    deactivateChain(params: ChainIDParam): Promise<void>;
    estimateGasOffledger(params: ChainIDParam, requestBody: EstimateGasRequestOffledger): Promise<ReceiptResponse>;
    estimateGasOnledger(params: ChainIDParam, requestBody: EstimateGasRequestOnledger): Promise<ReceiptResponse>;
    submitJSONRPCRequest(params: ChainIDParam): Promise<any>;
    getMempoolContents(params: ChainIDParam): Promise<number[]>;
    getReceipt(params: ChainIDAndRequestIDParam): Promise<ReceiptResponse>;
    waitForRequest(params: WaitForRequestParams): Promise<ReceiptResponse>;
    getStateValue(params: StateValueParams): Promise<StateResponse>;
    getChainMessageMetrics(params: ChainIDParam): Promise<ChainMessageMetrics>;
    getChainPipeMetrics(params: ChainIDParam): Promise<ConsensusPipeMetrics>;
    getChainWorkflowMetrics(params: ChainIDParam): Promise<ConsensusWorkflowMetrics>;
    getNodeMessageMetrics(): Promise<NodeMessageMetrics>;
    getConfiguration(): Promise<any>;
    generateDKS(params: DKSharesPostRequest): Promise<DKSharesInfo>;
    getDKSInfo(sharedAddress: string): Promise<DKSharesInfo>;
    getInfo(): Promise<InfoResponse>;
    ownerCertificate(): Promise<NodeOwnerCertificateResponse>;
    getAllPeers(): Promise<PeeringNodeStatusResponse[]>;
    getPeeringIdentity(): Promise<PeeringNodeIdentityResponse>;
    getTrustedPeers(): Promise<PeeringNodeIdentityResponse[]>;
    trustPeer(requestBody: PeeringTrustRequest): Promise<void>;
    distrustPeer(peer: string): Promise<void>;
    shutdownNode(): Promise<void>;
    getVersion(): Promise<VersionResponse>;
    offLedger(requestBody: OffLedgerRequest): Promise<void>;
    getUsers(): Promise<User[]>;
    addUser(body: AddUserRequest): Promise<void>;
    deleteUser(username: string): Promise<void>;
    getUser(username: string): Promise<User>;
    changeUserPassword(params: UpdateUserPasswordRequest): Promise<void>;
    changeUserPermissions(params: UpdateUserPermissionsRequest): Promise<void>;
}
