import { type TSESTree } from '@typescript-eslint/utils';
/**
 * Extracts the metadata object from a class decorator such as
 * `@Component()`, `@Directive()`, `@NgModule()`, or `@Pipe()`.
 *
 * Returns the first argument of the decorator call *if and only if*
 * it is an `ObjectExpression`.
 *
 * @example
 * // Given:
 * @Component({
 *   selector: 'x',
 *   imports: [A, B],
 * })
 * class MyCmp {}
 *
 * // In the AST for @Component(...)
 * getDecoratorMetadata(decorator, allowed) →
 *    ObjectExpression({ selector: ..., imports: ... })
 *
 * @param decorator - The decorator node attached to a class declaration.
 * @param allowedNames - A set of decorator names to consider
 *                       (e.g., Component, Directive, NgModule, Pipe).
 *
 * @returns The metadata `ObjectExpression` if present and valid,
 *          otherwise `null`.
 */
export declare function getDecoratorMetadata(decorator: TSESTree.Decorator, allowedNames: Set<string>): TSESTree.ObjectExpression | null;
