/** * ESLint Rule: No Forbidden Telemetry Attributes * * This rule detects usage of forbidden attributes in span/metric instrumentation. * It catches common leak paths before code is merged. * * Usage in eslint.config.js: * ``` * import { noForbiddenTelemetryAttributes } from '@superblocksteam/telemetry/lint'; * * export default [ * { * plugins: { * telemetry: { rules: { 'no-forbidden-attributes': noForbiddenTelemetryAttributes } } * }, * rules: { * 'telemetry/no-forbidden-attributes': 'error' * } * } * ]; * ``` */ /** * Forbidden attribute patterns for static analysis. */ export declare const FORBIDDEN_ATTRIBUTE_PATTERNS: string[]; /** * ESLint rule metadata. */ export declare const noForbiddenTelemetryAttributesMeta: { type: string; docs: { description: string; category: string; recommended: boolean; }; messages: { forbiddenAttribute: string; resourceOnlyAttribute: string; }; schema: never[]; }; /** * ESLint rule implementation. * * Detects patterns like: * - span.setAttribute('prompt', value) * - span.setAttributes({ prompt: value }) * - { 'prompt': value } */ export declare function noForbiddenTelemetryAttributesCreate(context: any): { CallExpression(node: any): void; Property(node: any): void; }; /** * Complete ESLint rule export. */ export declare const noForbiddenTelemetryAttributes: { meta: { type: string; docs: { description: string; category: string; recommended: boolean; }; messages: { forbiddenAttribute: string; resourceOnlyAttribute: string; }; schema: never[]; }; create: typeof noForbiddenTelemetryAttributesCreate; }; /** * ESLint rule: No Direct OTEL SDK Usage * * Detects direct usage of NodeSDK or WebTracerProvider outside the telemetry package. */ export declare const noDirectOtelSdkMeta: { type: string; docs: { description: string; category: string; recommended: boolean; }; messages: { directSdkUsage: string; }; schema: never[]; }; export declare function noDirectOtelSdkCreate(context: any): { ImportSpecifier?: undefined; CallExpression?: undefined; } | { ImportSpecifier(node: any): void; CallExpression(node: any): void; }; export declare const noDirectOtelSdk: { meta: { type: string; docs: { description: string; category: string; recommended: boolean; }; messages: { directSdkUsage: string; }; schema: never[]; }; create: typeof noDirectOtelSdkCreate; }; /** * All telemetry ESLint rules. */ export declare const telemetryRules: { 'no-forbidden-attributes': { meta: { type: string; docs: { description: string; category: string; recommended: boolean; }; messages: { forbiddenAttribute: string; resourceOnlyAttribute: string; }; schema: never[]; }; create: typeof noForbiddenTelemetryAttributesCreate; }; 'no-direct-otel-sdk': { meta: { type: string; docs: { description: string; category: string; recommended: boolean; }; messages: { directSdkUsage: string; }; schema: never[]; }; create: typeof noDirectOtelSdkCreate; }; }; //# sourceMappingURL=forbidden-attributes.d.ts.map