/**
 * Sibling-package link setup for workflows that consume a package living in
 * a sibling repo / worktree on disk.
 *
 * Problem it solves: agents running inside a workflow sometimes find that
 * `npm install` (or `pip install`) resolved an older version of a package
 * than the one the workflow actually needs — for example when the consumer
 * workflow runs before the producer has published a new release. Rather
 * than letting agents see a stale interface (and react by augmenting the
 * module or writing fallback implementations), linking redirects the
 * package resolution at dev-time to the sibling's on-disk build output.
 *
 * Usage (ESM):
 *
 *   import { workflow, applySiblingLinks } from '@agent-relay/sdk/workflows';
 *
 *   const base = workflow('my-feature').pattern('dag').agent('impl', ...);
 *   const wf = applySiblingLinks(base, {
 *     dependsOn: ['install-deps'],
 *     links: [
 *       {
 *         name: '@agent-assistant/proactive',
 *         path: '../agent-assistant/packages/proactive',
 *         expect: ['recordSignal', 'drainSignals'],
 *       },
 *       {
 *         name: '@agent-assistant/surfaces',
 *         path: '../agent-assistant/packages/surfaces',
 *         expect: ['classifySlackPresenceSignal'],
 *       },
 *     ],
 *   });
 *
 *   await wf.step('plan', { agent: 'impl', dependsOn: ['setup-sibling-links'], task: ... })
 *     .run({ cwd: process.cwd() });
 *
 * MVP language support: npm (package.json), Python (pyproject.toml /
 * setup.py / setup.cfg). Auto-detects from the sibling's manifest. Fails
 * fast on missing path, unknown manifest, or missing expected exports.
 */
/** A single sibling package to link into the workflow's working directory. */
export interface SiblingLink {
    /**
     * Package name as it appears in imports (e.g. "@agent-assistant/proactive",
     * "my_python_pkg"). For Python, use the import name (underscored), not the
     * distribution name.
     */
    name: string;
    /**
     * Path to the sibling package root, relative to the workflow's cwd.
     * For npm, this is the directory containing package.json.
     * For Python, the directory containing pyproject.toml / setup.py.
     */
    path: string;
    /**
     * Optional list of top-level named exports / attributes the workflow
     * expects to find on the linked package post-setup. When provided, a
     * language-appropriate import smoke test runs and fails the step if any
     * are missing.
     */
    expect?: string[];
}
export interface SiblingLinkOptions {
    /** Link declarations. All must succeed (fail-fast on any error). */
    links: SiblingLink[];
    /**
     * Step name for the setup step emitted by this helper.
     * Defaults to `"setup-sibling-links"`.
     */
    stepName?: string;
    /**
     * dependsOn for the setup step. Typically `['install-deps']` so that
     * `npm install` / `pip install` has run first.
     * Defaults to `['install-deps']`.
     */
    dependsOn?: string[];
}
/**
 * Adds a single deterministic step to the workflow that links each sibling
 * package into the workflow's working directory using the appropriate
 * language-specific mechanism, then smoke-tests each linked package for
 * expected exports.
 *
 * The step fails fast on:
 *   - Sibling path missing
 *   - Unknown manifest (no package.json / pyproject.toml / setup.py)
 *   - Link command failure
 *   - Missing expected export
 */
export declare function applySiblingLinks<T>(wf: T, opts: SiblingLinkOptions): T;
/**
 * Builds a bash script that:
 *   1. For each link, detects its manifest and applies the right link command.
 *   2. After all links succeed, runs one import smoke test per link that
 *      declared expected exports.
 *
 * Exported for test visibility; not part of the public API.
 */
export declare function buildSiblingLinkScript(links: SiblingLink[]): string;
//# sourceMappingURL=sibling-links.d.ts.map