/**
 * Adapter: Load task definitions from .ailf/tasks/ in an external repo.
 *
 * Supports two task file formats:
 *
 * 1. **TypeScript (.task.ts)** — Tasks authored with `defineTask()` from
 *    `@sanity/ailf`. These use `GeneralizedTaskDefinition` field names
 *    and are passed through with basic runtime guards.
 *
 * 2. **YAML (.yaml)** — Tasks using the canonical `GeneralizedTaskDefinition`
 *    field names (area, context.docs, assertions, prompt.text). Validated
 *    through the CanonicalTaskSchema Zod schema.
 *
 * All tasks use the single canonical shape — no mapping layer, no dual-shape
 * detection. The `mode` field defaults to "literacy" for YAML tasks that
 * omit it.
 *
 * @see packages/core/src/types/generalized-task.ts — canonical types
 * @see packages/core/src/ports/task-source.ts — TaskSource port
 */
import type { FilterOptions, GeneralizedTaskDefinition, TaskSource } from "../../_vendor/ailf-core/index.d.ts";
export interface RepoTaskSourceOptions {
    /**
     * When true, treat a missing directory or empty task set as a valid
     * empty result instead of throwing. Used by the composition root for
     * the AILF-bundled `tasks/${mode}/` source, which is missing in some
     * test rootDirs and modes that ship no defaults.
     */
    allowMissing?: boolean;
}
export declare class RepoTaskSource implements TaskSource {
    private readonly tasksDir;
    private readonly options;
    constructor(tasksDir: string, options?: RepoTaskSourceOptions);
    loadTasks(filter?: FilterOptions): Promise<GeneralizedTaskDefinition[]>;
}
