import { GraphQLSchema, Source, Kind } from 'graphql';
import { AST } from 'eslint';
import { Source as LoaderSource } from '@graphql-tools/utils';
import { GraphQLESLintRuleContext } from './types';
import { SiblingOperations } from './sibling-operations';
import { UsedFields, ReachableTypes } from './graphql-ast';
export declare function requireSiblingsOperations(ruleName: string, context: GraphQLESLintRuleContext): SiblingOperations | never;
export declare function requireGraphQLSchemaFromContext(ruleName: string, context: GraphQLESLintRuleContext): GraphQLSchema | never;
export declare function requireReachableTypesFromContext(ruleName: string, context: GraphQLESLintRuleContext): ReachableTypes | never;
export declare function requireUsedFieldsFromContext(ruleName: string, context: GraphQLESLintRuleContext): UsedFields | never;
export declare function extractTokens(source: Source): AST.Token[];
export declare const normalizePath: (path: string) => string;
/**
 * https://github.com/prettier/eslint-plugin-prettier/blob/76bd45ece6d56eb52f75db6b4a1efdd2efb56392/eslint-plugin-prettier.js#L71
 * Given a filepath, get the nearest path that is a regular file.
 * The filepath provided by eslint may be a virtual filepath rather than a file
 * on disk. This attempts to transform a virtual path into an on-disk path
 */
export declare const getOnDiskFilepath: (filepath: string) => string;
export declare const getTypeName: (node: any) => any;
export declare const loaderCache: Record<string, LoaderSource[]>;
export declare const TYPES_KINDS: readonly [Kind.OBJECT_TYPE_DEFINITION, Kind.INTERFACE_TYPE_DEFINITION, Kind.ENUM_TYPE_DEFINITION, Kind.SCALAR_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.UNION_TYPE_DEFINITION];
export declare enum CaseStyle {
    camelCase = "camelCase",
    pascalCase = "PascalCase",
    snakeCase = "snake_case",
    upperCase = "UPPER_CASE",
    kebabCase = "kebab-case"
}
export declare const camelCase: (str: string) => string;
export declare const convertCase: (style: CaseStyle, str: string) => string;
export declare function getLocation(loc: Partial<AST.SourceLocation>, fieldName?: string, offset?: {
    offsetStart?: number;
    offsetEnd?: number;
}): AST.SourceLocation;
