import { Client, ClientOptions } from '@urql/core';
import { Eventual, Logger, NetworkContracts, WritableEventual } from '@graphprotocol/common-ts';
import { NetworkSubgraph } from '../network-subgraph';
import { IndexerManagementModels, IndexingRuleCreationAttributes } from './models';
import { BigNumber } from 'ethers';
import { IndexingStatusResolver } from '../indexing-status';
export interface IndexerManagementFeatures {
    injectDai: boolean;
}
export interface IndexerManagementResolverContext {
    models: IndexerManagementModels;
    address: string;
    contracts: NetworkContracts;
    indexingStatusResolver: IndexingStatusResolver;
    networkSubgraph: NetworkSubgraph;
    logger?: Logger;
    defaults: IndexerManagementDefaults;
    features: IndexerManagementFeatures;
    dai: Eventual<string>;
}
export interface IndexerManagementDefaults {
    globalIndexingRule: Omit<IndexingRuleCreationAttributes, 'deployment' | 'allocationAmount'> & {
        allocationAmount: BigNumber;
    };
}
export interface IndexerManagementClientOptions {
    models: IndexerManagementModels;
    address: string;
    contracts: NetworkContracts;
    indexingStatusResolver: IndexingStatusResolver;
    networkSubgraph: NetworkSubgraph;
    logger?: Logger;
    defaults: IndexerManagementDefaults;
    features: IndexerManagementFeatures;
}
export declare class IndexerManagementClient extends Client {
    private logger?;
    private models;
    private dai;
    constructor(clientOptions: ClientOptions, options: IndexerManagementClientOptions, featureOptions: {
        dai: WritableEventual<string>;
    });
    setDai(value: string): Promise<void>;
}
export declare const createIndexerManagementClient: (options: IndexerManagementClientOptions) => Promise<IndexerManagementClient>;
