import { AcDbEntity, AcDbTypedValue } from '@mlightcad/data-model'; /** * Represents one entity filter expression for selection operations. * * This class is inspired by AutoCAD .NET `SelectionFilter`, where filter clauses * are expressed by typed DXF values. Conditions are evaluated with AND semantics. * * Supported typed values: * - `AcDbDxfCode.Start` => entity type (DXF type or runtime type) * - `AcDbDxfCode.LayerName` => layer name * - `AcDbDxfCode.ColorName` => `entity.color.toString()` * - `AcDbDxfCode.LinetypeName` => line type name * - `AcDbDxfCode.LineWeight` => lineweight * - `AcDbDxfCode.Operator` => comparison operator for next clause * * Supported operator tokens: * - `=`, `==` * - `!=`, `<>` * - `>`, `>=`, `<`, `<=` */ export declare class AcEdSelectionFilter { private readonly _typedValues; constructor(values?: AcDbTypedValue[]); /** * Returns typed values used by this filter. */ get typedValues(): AcDbTypedValue[]; /** * Returns whether the specified entity satisfies all filter clauses. */ matches(entity: AcDbEntity): boolean; /** * Parses one operator token from typed-value input. * * Accepted tokens follow common AutoCAD comparison syntax. Unknown values * safely fall back to equality. * * @param raw - Raw operator token (usually from `AcDbDxfCode.Operator`) * @returns Normalized internal comparison operator */ private parseOperator; /** * Evaluates whether one typed-value clause matches the given entity. * * The method first resolves an entity-side value by DXF code, then compares * it with the filter value using the operator currently in effect. * * @param entity - Entity being tested * @param tv - Typed-value clause (`code` + `value`) * @param op - Comparison operator for this clause * @returns `true` if the clause matches; otherwise `false` */ private matchTypedValue; /** * Resolves the entity property value associated with one DXF group code. * * Only codes used by current Quick Select flow are mapped. Unsupported * codes return `undefined` and are treated as non-matching clauses. * * @param entity - Source entity * @param code - DXF code indicating which property to read * @returns Resolved value for comparison, or `undefined` if unsupported */ private resolveEntityValue; /** * Compares runtime value and filter value with the given operator. * * Comparison strategy: * - Numeric path: when both values are finite numbers * - String path: case-insensitive lexicographic comparison otherwise * * @param actual - Runtime value resolved from entity * @param expected - Target value from filter clause * @param op - Comparison operator * @returns `true` when comparison succeeds; otherwise `false` */ private compare; } //# sourceMappingURL=AcEdSelectionFilter.d.ts.map