import { Address, Logger, SubgraphDeploymentID } from '@graphprotocol/common-ts';
import { AllocationManager, GraphNode, IndexerManagementModels, Network, QueryFeeModels, SubgraphClient, TapCollector } from '@graphprotocol/indexer-common';
import { GatewayDipsServiceMessagesCodec } from './gateway-dips-service-client';
import { GatewayDipsServiceClientImpl } from '@graphprotocol/dips-proto/generated/gateway';
import { IndexingAgreement } from '../indexer-management/models/indexing-agreement';
import { NetworkSpecification } from '../network-specification';
import { Wallet } from 'ethers';
type GetEscrowSenderForSigner = (tapSubgraph: SubgraphClient, signer: Address) => Promise
;
export declare class DipsManager {
private logger;
private models;
private network;
private parent;
gatewayDipsServiceClient: GatewayDipsServiceClientImpl;
gatewayDipsServiceMessagesCodec: GatewayDipsServiceMessagesCodec;
constructor(logger: Logger, models: IndexerManagementModels, network: Network, parent: AllocationManager | null);
tryCancelAgreement(allocationId: string): Promise;
tryUpdateAgreementAllocation(deploymentId: string, oldAllocationId: Address | null, newAllocationId: Address | null): Promise;
ensureAgreementRules(): Promise;
getActiveDipsDeployments(): Promise;
}
export declare class DipsCollector {
private logger;
private managementModels;
private queryFeeModels;
private specification;
private tapCollector;
private wallet;
private graphNode;
escrowSenderGetter: GetEscrowSenderForSigner;
gatewayDipsServiceClient: GatewayDipsServiceClientImpl;
gatewayDipsServiceMessagesCodec: GatewayDipsServiceMessagesCodec;
constructor(logger: Logger, managementModels: IndexerManagementModels, queryFeeModels: QueryFeeModels, specification: NetworkSpecification, tapCollector: TapCollector, wallet: Wallet, graphNode: GraphNode, escrowSenderGetter: GetEscrowSenderForSigner);
static create(logger: Logger, managementModels: IndexerManagementModels, queryFeeModels: QueryFeeModels, specification: NetworkSpecification, tapCollector: TapCollector, wallet: Wallet, graphNode: GraphNode, escrowSenderGetter?: GetEscrowSenderForSigner): DipsCollector;
startCollectionLoop(): void;
collectAllPayments(): Promise;
tryCollectPayment(agreement: IndexingAgreement): Promise;
}
export {};