import { Address, BigNumber, BlockNumber, SubgraphId, Timestamp } from "../../mappedSubgraphTypes";
import { IndexSubscription_Filter, IndexSubscription_OrderBy } from "../../schema.generated";
import { RelevantAddressesIntermediate, SubgraphListQuery, SubgraphQueryHandler } from "../../subgraphQueryHandler";
import { IndexSubscriptionsQuery, IndexSubscriptionsQueryVariables } from "./indexSubscriptions.generated";
export interface IndexSubscription {
    id: SubgraphId;
    createdAtBlockNumber: BlockNumber;
    createdAtTimestamp: Timestamp;
    updatedAtTimestamp: Timestamp;
    updatedAtBlockNumber: BlockNumber;
    approved: boolean;
    indexValueUntilUpdatedAt: BigNumber;
    indexValueCurrent: BigNumber;
    totalAmountReceivedUntilUpdatedAt: BigNumber;
    units: BigNumber;
    indexTotalUnits: BigNumber;
    index: SubgraphId;
    indexId: string;
    token: Address;
    tokenSymbol: string;
    subscriber: Address;
    publisher: Address;
}
export type IndexSubscriptionsListQuery = SubgraphListQuery<IndexSubscription_Filter, IndexSubscription_OrderBy>;
export declare class IndexSubscriptionQueryHandler extends SubgraphQueryHandler<IndexSubscription, IndexSubscriptionsListQuery, IndexSubscriptionsQuery, IndexSubscriptionsQueryVariables> {
    getAddressFieldKeysFromFilter: () => {
        accountKeys: (keyof IndexSubscription_Filter)[];
        tokenKeys: (keyof IndexSubscription_Filter)[];
    };
    getRelevantAddressesFromResultCore: (result: IndexSubscription) => RelevantAddressesIntermediate;
    mapFromSubgraphResponse: (response: IndexSubscriptionsQuery) => IndexSubscription[];
    requestDocument: import("@graphql-typed-document-node/core").TypedDocumentNode<IndexSubscriptionsQuery, import("../../schema.generated").Exact<{
        first?: import("../../schema.generated").InputMaybe<import("../../schema.generated").Scalars["Int"]["input"]>;
        orderBy?: import("../../schema.generated").InputMaybe<IndexSubscription_OrderBy>;
        orderDirection?: import("../../schema.generated").InputMaybe<import("../../schema.generated").OrderDirection>;
        skip?: import("../../schema.generated").InputMaybe<import("../../schema.generated").Scalars["Int"]["input"]>;
        where?: import("../../schema.generated").InputMaybe<IndexSubscription_Filter>;
        block?: import("../../schema.generated").InputMaybe<import("../../schema.generated").Block_Height>;
    }>>;
}
//# sourceMappingURL=indexSubscription.d.ts.map