import type { Rule } from 'eslint';
import type { CallExpression } from 'estree-jsx';
export declare class Linter {
    private readonly allowedDynamicKeys;
    private readonly allowedFunctionCalls;
    private readonly context;
    private readonly baseNode;
    constructor(context: Rule.RuleContext, baseNode: CallExpression);
    /**
     * Wrapper around `context.report` to provide type checking on the message ID.
     */
    private report;
    /**
     * Fallback case to lint any identifier that is not otherwise handled.
     */
    private lintUnhandledIdentifier;
    private lintIdentifier;
    private isAllowedDynamicKey;
    private lintKey;
    private isAllowedFunctionCall;
    private lintFunctionCall;
    private lintObjectExpression;
    private lintUnhandledValue;
    private lintValue;
    private lintArgument;
    private lintArguments;
    run(): void;
}
