import { type TSESTree } from "@typescript-eslint/utils";
import { type astNodeAccessors } from "@flint/infra/constants/eslint-syntax-names";
import { type eslintProperties } from "@flint/infra/constants/rules-meta";
export type MethodCallExpression<Method extends string> = Omit<TSESTree.CallExpression, MethodCallTargetKey> & {
    callee: Omit<TSESTree.MemberExpression, typeof eslintProperties.property> & {
        property: Omit<TSESTree.Identifier, typeof eslintProperties.name> & {
            name: Method;
        };
    };
};
type MethodCallTargetKey = typeof astNodeAccessors.functionTarget;
export declare function isOptionalLikeParameter(param: TSESTree.Parameter): boolean;
export declare function getDefaultValueExpression(param: TSESTree.Parameter): TSESTree.Expression | undefined;
export declare function getParameterName(param: TSESTree.Parameter): string | undefined;
export declare function isMethodCallExpression<Method extends string>(node: TSESTree.Node, method: Method): node is MethodCallExpression<Method>;
export {};
