import type { Include } from '@dynatrace-sdk/client-filter-segment-management'; import type { ApplicabilityVerdict, RequiredDataObject, SegmentCoverage } from './applicability.types.js'; /** Hardcoded, not tenant input - skips `FIELDS_SNAPSHOT_COVERED` validation. */ export declare const ENTITY_FIELDS_SNAPSHOT_SOURCE = "smartscape.nodes"; /** Fields on the required entity type(s) - non-empty also proves the type exists, shared by `checkEntityTypeSupport` and `checkFilterFields`. */ export declare const ENTITY_TYPE_FIELDS_SOURCE = "entity-type-fields"; /** * Derives what a segment covers. `_all_data_object` saturates everything; * `_all_entities` covers entities only. Classic `dt.entity.` / * `_classic_entities` includes are intentionally ignored. * @internal */ export declare function getSegmentCoverage(includes?: Include[]): SegmentCoverage; /** * Data objects needing a `fieldsSnapshot` lookup, limited to the sources the * view reads - `checkFilterFields` skips the rest, so querying them is waste. * Signal values are checked against `FIELDS_SNAPSHOT_COVERED` - * tenant-authored, must never reach the query builder unvalidated. * @internal */ export declare function getFieldsSnapshotCandidates(includes?: Include[], requires?: RequiredDataObject[]): string[]; /** * First-mismatch-wins verdict: checks signals, entities, entity types, then * filter fields in order, stopping at the first zero-overlap dimension. * Partial coverage never warns. * @internal */ export declare function getApplicabilityVerdict(coverage: SegmentCoverage, requires?: RequiredDataObject[], includes?: Include[], fieldsByDataObject?: ReadonlyMap>): ApplicabilityVerdict; /** * Entity type patterns to validate via `checkEntityTypeSupport` - empty * unless the segment already has unconditional Grail coverage. * @internal */ export declare function getRequiredEntityTypePatterns(coverage: SegmentCoverage, requires?: RequiredDataObject[]): string[]; /** * Extracts field names from a segment include's `filter` (a serialized * `FilterFieldTree`) by walking every `Statement` node's `key`. An * unparseable filter yields no fields - false negative, never false positive. * @internal */ export declare function extractFieldsFromFilter(filter: string | undefined): Set; //# sourceMappingURL=applicability.d.ts.map