declare module "graphql-depth-limit" {
  import type { ValidationContext, ASTVisitor } from "graphql";

  interface DepthLimitOptions {
    ignore?: string[];
  }

  function depthLimit(
    maxDepth: number,
    options?: DepthLimitOptions,
    callback?: (depth: number) => void,
  ): (context: ValidationContext) => ASTVisitor;

  export = depthLimit;
}
