import { type TSESTree } from "@typescript-eslint/types";
import { type TSESLint } from "@typescript-eslint/utils";
import { flintRuleIdentifiers } from "@flint/infra/constants/shared-string-identifiers";
export declare const variableDeclarationKinds: {
    readonly const: "const";
    readonly let: "let";
    readonly var: "var";
};
export declare const memberKinds: {
    exportInterface: number;
    exportType: number;
    exportClass: number;
    exportVariable: number;
    exportLambdaVariable: number;
    exportFunction: number;
    interface: number;
    type: number;
    class: number;
    variable: number;
    lambdaVariable: number;
    test: number;
    function: number;
};
export type MemberKind = (typeof memberKinds)[keyof typeof memberKinds];
export declare const memberKindsByExportNodeTypes: Record<string, MemberKind>;
export declare const memberKindsByNodeTypes: Record<string, MemberKind>;
export declare function isExportNamedVariableDeclaration(node: TSESTree.Node): node is Omit<TSESTree.ExportNamedDeclarationWithoutSourceWithSingle, typeof flintRuleIdentifiers.declaration> & {
    declaration: TSESTree.VariableDeclaration;
};
export declare function isExportConstDeclaration(node: TSESTree.Statement): node is TSESTree.ExportNamedDeclarationWithoutSourceWithSingle & {
    declaration: TSESTree.ConstDeclaration;
};
export declare function getExportedConstName(node: TSESTree.ExportNamedDeclaration): any;
export declare function isExportedFunctionStatement(node: TSESTree.Statement): any;
export declare function getExportedFunctionNames(node: TSESTree.ExportNamedDeclaration): string[];
export declare function getExportedLocalNames(statement: TSESTree.Statement): string[];
export declare function getMemberKindByNodeType(node: TSESTree.Node, sourceCode: TSESLint.SourceCode): number;
export declare function isTestCallStatement(node: TSESTree.Node, sourceCode: TSESLint.SourceCode): boolean;
export declare function isIdGetterOnlyImport(importClauses: TSESTree.ImportDeclaration["specifiers"]): boolean;
