import { RuleTester } from 'eslint';
import { ASTKindToNode } from 'graphql';
import { GraphQLESTreeNode } from './estree-parser';
import { GraphQLESLintRule, ParserOptions } from './types';
export declare type GraphQLESLintRuleListener<WithTypeInfo extends boolean = false> = {
    [K in keyof ASTKindToNode]?: (node: GraphQLESTreeNode<ASTKindToNode[K], WithTypeInfo>) => void;
} & Record<string, any>;
export declare type GraphQLValidTestCase<Options> = Omit<RuleTester.ValidTestCase, 'options' | 'parserOptions'> & {
    name?: string;
    options?: Options;
    parserOptions?: ParserOptions;
};
export declare type GraphQLInvalidTestCase<T> = GraphQLValidTestCase<T> & {
    errors: number | Array<RuleTester.TestCaseError | string>;
    output?: string | null;
};
export declare class GraphQLRuleTester extends RuleTester {
    config: {
        parser: string;
        parserOptions: ParserOptions;
    };
    constructor(parserOptions?: ParserOptions);
    fromMockFile(path: string): string;
    runGraphQLTests<Config>(name: string, rule: GraphQLESLintRule, tests: {
        valid: (string | GraphQLValidTestCase<Config>)[];
        invalid: GraphQLInvalidTestCase<Config>[];
    }): void;
}
