import type { ExecutionArgs } from "graphql/execution/execute"; import { FieldNode } from "graphql"; import { Agent } from "../../agent/Agent"; import { Context } from "../../agent/Context"; import type { Endpoint } from "../../agent/Config"; type Result = { block: false; } | { block: true; field: FieldNode; source: "ip"; remoteAddress: string; operationType: "query" | "mutation"; endpoint: Endpoint; retryAfterSeconds: number; } | { block: true; field: FieldNode; source: "user"; userId: string; operationType: "query" | "mutation"; endpoint: Endpoint; retryAfterSeconds: number; } | { block: true; field: FieldNode; source: "group"; groupId: string; operationType: "query" | "mutation"; endpoint: Endpoint; retryAfterSeconds: number; }; export declare function shouldRateLimitOperation(agent: Agent, context: Context, executeArgs: Pick): Result; export {};