import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener } from "../../../common";
export interface IAllocationManagerInterface extends Interface {
    getEvent(nameOrSignatureOrTopic: "AllocationClosed" | "AllocationCreated" | "AllocationResized" | "IndexingRewardsCollected" | "LegacyAllocationMigrated" | "MaxPOIStalenessSet"): EventFragment;
}
export declare namespace AllocationClosedEvent {
    type InputTuple = [
        indexer: AddressLike,
        allocationId: AddressLike,
        subgraphDeploymentId: BytesLike,
        tokens: BigNumberish,
        forceClosed: boolean
    ];
    type OutputTuple = [
        indexer: string,
        allocationId: string,
        subgraphDeploymentId: string,
        tokens: bigint,
        forceClosed: boolean
    ];
    interface OutputObject {
        indexer: string;
        allocationId: string;
        subgraphDeploymentId: string;
        tokens: bigint;
        forceClosed: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace AllocationCreatedEvent {
    type InputTuple = [
        indexer: AddressLike,
        allocationId: AddressLike,
        subgraphDeploymentId: BytesLike,
        tokens: BigNumberish,
        currentEpoch: BigNumberish
    ];
    type OutputTuple = [
        indexer: string,
        allocationId: string,
        subgraphDeploymentId: string,
        tokens: bigint,
        currentEpoch: bigint
    ];
    interface OutputObject {
        indexer: string;
        allocationId: string;
        subgraphDeploymentId: string;
        tokens: bigint;
        currentEpoch: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace AllocationResizedEvent {
    type InputTuple = [
        indexer: AddressLike,
        allocationId: AddressLike,
        subgraphDeploymentId: BytesLike,
        newTokens: BigNumberish,
        oldTokens: BigNumberish
    ];
    type OutputTuple = [
        indexer: string,
        allocationId: string,
        subgraphDeploymentId: string,
        newTokens: bigint,
        oldTokens: bigint
    ];
    interface OutputObject {
        indexer: string;
        allocationId: string;
        subgraphDeploymentId: string;
        newTokens: bigint;
        oldTokens: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace IndexingRewardsCollectedEvent {
    type InputTuple = [
        indexer: AddressLike,
        allocationId: AddressLike,
        subgraphDeploymentId: BytesLike,
        tokensRewards: BigNumberish,
        tokensIndexerRewards: BigNumberish,
        tokensDelegationRewards: BigNumberish,
        poi: BytesLike,
        poiMetadata: BytesLike,
        currentEpoch: BigNumberish
    ];
    type OutputTuple = [
        indexer: string,
        allocationId: string,
        subgraphDeploymentId: string,
        tokensRewards: bigint,
        tokensIndexerRewards: bigint,
        tokensDelegationRewards: bigint,
        poi: string,
        poiMetadata: string,
        currentEpoch: bigint
    ];
    interface OutputObject {
        indexer: string;
        allocationId: string;
        subgraphDeploymentId: string;
        tokensRewards: bigint;
        tokensIndexerRewards: bigint;
        tokensDelegationRewards: bigint;
        poi: string;
        poiMetadata: string;
        currentEpoch: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LegacyAllocationMigratedEvent {
    type InputTuple = [
        indexer: AddressLike,
        allocationId: AddressLike,
        subgraphDeploymentId: BytesLike
    ];
    type OutputTuple = [
        indexer: string,
        allocationId: string,
        subgraphDeploymentId: string
    ];
    interface OutputObject {
        indexer: string;
        allocationId: string;
        subgraphDeploymentId: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MaxPOIStalenessSetEvent {
    type InputTuple = [maxPOIStaleness: BigNumberish];
    type OutputTuple = [maxPOIStaleness: bigint];
    interface OutputObject {
        maxPOIStaleness: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface IAllocationManager extends BaseContract {
    connect(runner?: ContractRunner | null): IAllocationManager;
    waitForDeployment(): Promise<this>;
    interface: IAllocationManagerInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getEvent(key: "AllocationClosed"): TypedContractEvent<AllocationClosedEvent.InputTuple, AllocationClosedEvent.OutputTuple, AllocationClosedEvent.OutputObject>;
    getEvent(key: "AllocationCreated"): TypedContractEvent<AllocationCreatedEvent.InputTuple, AllocationCreatedEvent.OutputTuple, AllocationCreatedEvent.OutputObject>;
    getEvent(key: "AllocationResized"): TypedContractEvent<AllocationResizedEvent.InputTuple, AllocationResizedEvent.OutputTuple, AllocationResizedEvent.OutputObject>;
    getEvent(key: "IndexingRewardsCollected"): TypedContractEvent<IndexingRewardsCollectedEvent.InputTuple, IndexingRewardsCollectedEvent.OutputTuple, IndexingRewardsCollectedEvent.OutputObject>;
    getEvent(key: "LegacyAllocationMigrated"): TypedContractEvent<LegacyAllocationMigratedEvent.InputTuple, LegacyAllocationMigratedEvent.OutputTuple, LegacyAllocationMigratedEvent.OutputObject>;
    getEvent(key: "MaxPOIStalenessSet"): TypedContractEvent<MaxPOIStalenessSetEvent.InputTuple, MaxPOIStalenessSetEvent.OutputTuple, MaxPOIStalenessSetEvent.OutputObject>;
    filters: {
        "AllocationClosed(address,address,bytes32,uint256,bool)": TypedContractEvent<AllocationClosedEvent.InputTuple, AllocationClosedEvent.OutputTuple, AllocationClosedEvent.OutputObject>;
        AllocationClosed: TypedContractEvent<AllocationClosedEvent.InputTuple, AllocationClosedEvent.OutputTuple, AllocationClosedEvent.OutputObject>;
        "AllocationCreated(address,address,bytes32,uint256,uint256)": TypedContractEvent<AllocationCreatedEvent.InputTuple, AllocationCreatedEvent.OutputTuple, AllocationCreatedEvent.OutputObject>;
        AllocationCreated: TypedContractEvent<AllocationCreatedEvent.InputTuple, AllocationCreatedEvent.OutputTuple, AllocationCreatedEvent.OutputObject>;
        "AllocationResized(address,address,bytes32,uint256,uint256)": TypedContractEvent<AllocationResizedEvent.InputTuple, AllocationResizedEvent.OutputTuple, AllocationResizedEvent.OutputObject>;
        AllocationResized: TypedContractEvent<AllocationResizedEvent.InputTuple, AllocationResizedEvent.OutputTuple, AllocationResizedEvent.OutputObject>;
        "IndexingRewardsCollected(address,address,bytes32,uint256,uint256,uint256,bytes32,bytes,uint256)": TypedContractEvent<IndexingRewardsCollectedEvent.InputTuple, IndexingRewardsCollectedEvent.OutputTuple, IndexingRewardsCollectedEvent.OutputObject>;
        IndexingRewardsCollected: TypedContractEvent<IndexingRewardsCollectedEvent.InputTuple, IndexingRewardsCollectedEvent.OutputTuple, IndexingRewardsCollectedEvent.OutputObject>;
        "LegacyAllocationMigrated(address,address,bytes32)": TypedContractEvent<LegacyAllocationMigratedEvent.InputTuple, LegacyAllocationMigratedEvent.OutputTuple, LegacyAllocationMigratedEvent.OutputObject>;
        LegacyAllocationMigrated: TypedContractEvent<LegacyAllocationMigratedEvent.InputTuple, LegacyAllocationMigratedEvent.OutputTuple, LegacyAllocationMigratedEvent.OutputObject>;
        "MaxPOIStalenessSet(uint256)": TypedContractEvent<MaxPOIStalenessSetEvent.InputTuple, MaxPOIStalenessSetEvent.OutputTuple, MaxPOIStalenessSetEvent.OutputObject>;
        MaxPOIStalenessSet: TypedContractEvent<MaxPOIStalenessSetEvent.InputTuple, MaxPOIStalenessSetEvent.OutputTuple, MaxPOIStalenessSetEvent.OutputObject>;
    };
}
//# sourceMappingURL=IAllocationManager.d.ts.map