import { Address, SubgraphDeploymentID } from '@graphprotocol/common-ts';
import { BigNumber } from 'ethers';
export interface SubgraphDeployment {
    id: SubgraphDeploymentID;
    stakedTokens: BigNumber;
    signalAmount: BigNumber;
}
export interface Allocation {
    id: Address;
    subgraphDeployment: SubgraphDeployment;
    indexer: Address;
    allocatedTokens: BigNumber;
    createdAtEpoch: number;
    createdAtBlockHash: string;
    closedAtEpoch: number;
    closedAtEpochStartBlockHash: string | undefined;
    previousEpochStartBlockHash: string | undefined;
    closedAtBlockHash: string;
    poi: string | undefined;
}
export declare enum AllocationStatus {
    Null = 0,
    Active = 1,
    Closed = 2,
    Finalized = 3,
    Claimed = 4
}
export declare const parseGraphQLAllocation: (allocation: any) => Allocation;
export interface RewardsPool {
    subgraphDeployment: SubgraphDeploymentID;
    allocationIndexer: Address;
    allocationCreatedAtBlockHash: string;
    closedAtEpoch: number;
    closedAtEpochStartBlockHash: string | undefined;
    closedAtEpochStartBlockNumber: number | undefined;
    previousEpochStartBlockHash: string | undefined;
    previousEpochStartBlockNumber: number | undefined;
    referencePOI: string | undefined;
    referencePreviousPOI: string | undefined;
}
export declare const allocationRewardsPool: (allocation: Allocation) => RewardsPool;
export interface Epoch {
    id: number;
    startBlock: number;
    startBlockHash: string | undefined;
    endBlock: number;
    signalledTokens: number;
    stakeDeposited: number;
    queryFeeRebates: number;
    totalRewards: number;
    totalIndexerRewards: number;
    totalDelegatorRewards: number;
}
export declare const parseGraphQLEpochs: (epoch: any) => Epoch;
