import type { ConditionContext } from '../interfaces/condition-context-interface.js'; import { Condition } from './condition.js'; /** * Implements the double-knock pattern: the first activation within a mode that * has double-knock enabled sets a "knocked" flag and rejects the trip. Only the * second activation within the configured window proceeds. * * The caller is responsible for managing `state.isKnocked` and the timeout * via the `onFirstKnock` callback injected at construction. */ export declare class DoubleKnockCondition extends Condition { private readonly onFirstKnock; private readonly onCancelTimer; readonly name = "double-knock"; /** * @param onFirstKnock Called when the first knock is detected. * The callback receives the window duration in seconds and a reset function * to invoke when the window expires. * @param onCancelTimer Called on the second knock to cancel the running window timer. */ constructor(onFirstKnock: (seconds: number, onExpire: () => void) => void, onCancelTimer: () => void); evaluate({ state, options, value, origin, log }: ConditionContext): boolean; private resolveWindow; }