/**
 * Inline-workflow store — replaces the on-disk `workflows/<id>.yaml` layer.
 *
 * See docs/design/multi-repo-components.md §3.2.
 *
 * Workflows now live inline in `project.yaml::workflows`. This store is a
 * thin facade over `ProjectConfigStore` that exposes the same API the
 * legacy `WorkflowStore` did (so `WorkflowManager`, `ConfigCascade`, and
 * `goal-manager` can keep calling `get / getAll / put / remove / update`
 * without changes), but the underlying data source is the inline block.
 *
 * The class is exported under both names (`WorkflowStore` and
 * `InlineWorkflowStore`) for back-compat with existing imports.
 */
import type { ProjectConfigStore, InlineVerifyStep } from "./project-config-store.js";
export interface VerifyStep {
    name: string;
    type: "command" | "llm-review" | "agent-qa" | "human-signoff";
    run?: string;
    prompt?: string;
    expect?: "success" | "failure";
    timeout?: number;
    phase?: number;
    optional?: boolean;
    /**
     * Sign-off card title shown to the human reviewer on `human-signoff`
     * steps. Distinct from `optionalLabel` — see the split documented in
     * `docs/design/human-signoff-gates.md`.
     */
    label?: string;
    /**
     * Toggle label shown at goal creation for any step with `optional: true`.
     * Was previously overloaded into `label` for non-human-signoff steps;
     * `normalizeStep` migrates old YAML forward on load.
     */
    optionalLabel?: string;
    role?: string;
    description?: string;
    /** Structural reference: which component to run from (Phase 2). */
    component?: string;
    /** Structural reference: which command on that component to invoke (Phase 2). */
    command?: string;
}
export interface WorkflowGate {
    id: string;
    name: string;
    dependsOn: string[];
    content?: boolean;
    injectDownstream?: boolean;
    optional?: boolean;
    manual?: boolean;
    metadata?: Record<string, string>;
    verify?: VerifyStep[];
}
export interface Workflow {
    id: string;
    name: string;
    description: string;
    gates: WorkflowGate[];
    createdAt: number;
    updatedAt: number;
    /** If true, workflow is hidden from the UI (e.g. test-only workflows) */
    hidden?: boolean;
}
/**
 * Inline-workflow store.
 *
 * Source: `ProjectConfigStore::getWorkflows()`. Mutations go back through
 * `ProjectConfigStore::setWorkflows()` so everything persists to a single
 * `project.yaml` file.
 *
 * Builtins are held in-memory only and never written to disk; they serve
 * as the lowest-priority layer in the config cascade.
 */
export declare class InlineWorkflowStore {
    private readonly cfg;
    private builtins;
    constructor(cfg: ProjectConfigStore);
    setBuiltins(items: Workflow[]): void;
    private readLocal;
    get(key: string): Workflow | undefined;
    getLocal(key: string): Workflow | undefined;
    getAll(): Workflow[];
    getAllLocal(): Workflow[];
    put(workflow: Workflow): void;
    remove(key: string): void;
    update(key: string, updates: Partial<Omit<Workflow, "id" | "createdAt">>): boolean;
    /** Shape-compatible reload hook — no-op since we read on every call. */
    reload(): void;
}
/** @deprecated Use `InlineWorkflowStore` directly. Re-exported for back-compat. */
export declare const WorkflowStore: typeof InlineWorkflowStore;
export type WorkflowStore = InlineWorkflowStore;
export type { InlineVerifyStep };
//# sourceMappingURL=workflow-store.d.ts.map