/**
 * Filter tasks by changed doc references.
 *
 * When `changedDocs` is set and non-empty, returns only tasks whose
 * `context.docs[*]` matches an entry. Tasks without a `context.docs` array
 * (e.g. knowledge-probe, mcp-server, agent-harness modes) are excluded —
 * there's no way for them to "touch" a doc reference.
 *
 * Each entry is matched as follows (D0090):
 * - A bare `string` entry keeps exact slug-match semantics (byte-for-byte
 *   identical to the legacy `string[]` behavior).
 * - A `GeneralizedDocRef` entry matches a task doc on its STRONGEST
 *   available key: `id` if present, else `path`, else `slug`.
 *
 * An empty or undefined `changedDocs` is a no-op (returns input).
 */
import type { GeneralizedDocRef, GeneralizedTaskDefinition } from "../../_vendor/ailf-core/index.d.ts";
export declare function filterByChangedDocs(tasks: readonly GeneralizedTaskDefinition[], changedDocs: readonly (string | GeneralizedDocRef)[] | undefined): GeneralizedTaskDefinition[];
