/** * Shared verb: provider clause operator + `negate` flag → Quonfig criterion * operator, or a skip reason. * * This is part of the `quonfig-target/` verb library (plan §3.1, D1) — written * once, consumed by every provider's `translate.ts`. The mapping table and the * negation rules below are LaunchDarkly-shaped today, but the *shape* of the * verb (op + negate → operator | skip) is provider-independent; a second * provider extends the table rather than reinventing the dispatch. */ /** Quonfig criterion operators — mirrors `OperatorSchema` in app-quonfig's config-schemas.ts. */ export type QuonfigOperator = 'ALWAYS_TRUE' | 'IN_SEG' | 'IS_NOT_PRESENT' | 'IS_PRESENT' | 'NOT_IN_SEG' | 'PROP_AFTER' | 'PROP_BEFORE' | 'PROP_CONTAINS_ONE_OF' | 'PROP_DOES_NOT_CONTAIN_ONE_OF' | 'PROP_DOES_NOT_END_WITH_ONE_OF' | 'PROP_DOES_NOT_MATCH' | 'PROP_DOES_NOT_START_WITH_ONE_OF' | 'PROP_ENDS_WITH_ONE_OF' | 'PROP_GREATER_THAN' | 'PROP_GREATER_THAN_OR_EQUAL' | 'PROP_IS_NOT_ONE_OF' | 'PROP_IS_ONE_OF' | 'PROP_LESS_THAN' | 'PROP_LESS_THAN_OR_EQUAL' | 'PROP_MATCHES' | 'PROP_SEMVER_EQUAL' | 'PROP_SEMVER_GREATER_THAN' | 'PROP_SEMVER_LESS_THAN' | 'PROP_STARTS_WITH_ONE_OF'; export type OperatorMapping = { operator: QuonfigOperator; } | { reason: string; skip: true; }; /** * Map a LaunchDarkly clause `op` + `negate` to a Quonfig operator. * * Returns `{skip: true, reason}` for clauses v1 cannot honor: * - negated comparison/date/semver ops (D3) * - `applicationVersionSupported` (no Quonfig equivalent) * - any operator not in the LaunchDarkly enum we recognize */ export declare function mapLaunchDarklyOperator(op: string, negate: boolean): OperatorMapping;