import { Address, BigNumber, BlockNumber, Timestamp } from "../../mappedSubgraphTypes";
import { Pool_Filter, Pool_OrderBy } from "../../schema.generated";
import { RelevantAddressesIntermediate, SubgraphListQuery, SubgraphQueryHandler } from "../../subgraphQueryHandler";
import { GetPoolQuery, PoolsQuery, PoolsQueryVariables } from "./pools.generated";
export type PoolListQuery = SubgraphListQuery<Pool_Filter, Pool_OrderBy>;
export interface Pool {
    id: Address;
    createdAtTimestamp: Timestamp;
    createdAtBlockNumber: BlockNumber;
    updatedAtTimestamp: Timestamp;
    updatedAtBlockNumber: BlockNumber;
    totalAmountInstantlyDistributedUntilUpdatedAt: BigNumber;
    totalAmountFlowedDistributedUntilUpdatedAt: BigNumber;
    totalAmountDistributedUntilUpdatedAt: BigNumber;
    totalFlowAdjustmentAmountDistributedUntilUpdatedAt: BigNumber;
    totalUnits: BigNumber;
    totalConnectedUnits: BigNumber;
    totalDisconnectedUnits: BigNumber;
    perUnitSettledValue: BigNumber;
    perUnitFlowRate: BigNumber;
    /**
     * A member is any account which has more than 0 units in the pool.
     */
    totalMembers: number;
    /**
     * A connected member is any account which has more than 0 units in the pool and is connected.
     */
    totalConnectedMembers: number;
    /**
     * A disconnected member is any account which has more than 0 units in the pool and is not connected.
     */
    totalDisconnectedMembers: number;
    adjustmentFlowRate: BigNumber;
    flowRate: BigNumber;
    totalBuffer: BigNumber;
    token: Address;
    admin: Address;
}
export type SubgraphPool = NonNullable<Required<GetPoolQuery>["pool"]>;
export declare const mapSubgraphGDAPool: (x: SubgraphPool) => Pool;
export declare class PoolQueryHandler extends SubgraphQueryHandler<Pool, PoolListQuery, PoolsQuery, PoolsQueryVariables> {
    getAddressFieldKeysFromFilter: () => {
        accountKeys: (keyof Pool_Filter)[];
        tokenKeys: (keyof Pool_Filter)[];
    };
    getRelevantAddressesFromResultCore: (result: Pool) => RelevantAddressesIntermediate;
    mapFromSubgraphResponse: (response: PoolsQuery) => Pool[];
    requestDocument: import("@graphql-typed-document-node/core").TypedDocumentNode<PoolsQuery, import("../../schema.generated").Exact<{
        first?: import("../../schema.generated").InputMaybe<import("../../schema.generated").Scalars["Int"]["input"]>;
        orderBy?: import("../../schema.generated").InputMaybe<Pool_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<Pool_Filter>;
        block?: import("../../schema.generated").InputMaybe<import("../../schema.generated").Block_Height>;
    }>>;
}
//# sourceMappingURL=pool.d.ts.map