import { Construct } from 'constructs';
import { MetadataType } from './metadata-type';
export declare function addConstructMetadata(scope: Construct, props: any): void;
export declare function addMethodMetadata(scope: Construct, methodName: string, props: any): void;
/**
 * Method decorator for tracking analytics metadata.
 * This decorator is used to track method calls in the CDK.
 */
export declare function MethodMetadata<This extends Construct>(): (originalMethod: any, context: ClassMethodDecoratorContext<This>) => any;
export declare function addMetadata(scope: Construct, type: MetadataType, props: any): void;
/**
 * Redact values from dictionary values other than Boolean and ENUM-type values.
 * @TODO we will build a JSON blueprint of ENUM-type values in the codebase and
 * do not redact the ENUM-type values if it match any key in the blueprint.
 */
export declare function redactMetadata(fqn: string, data: any): any;
export declare function redactTelemetryDataHelper(allowedKeys: any, data: any): any;
/**
 * Check if a value is an ENUM and matches the ENUM blueprint.
 */
export declare function isEnumValue(allowedKeys: any, value: any): boolean;
