/**
 * UpsertAgentGraphOverrideUseCase
 *
 * Creates a new override or replaces the existing one for the given
 * agentType. Rejects unknown agent types — the user can only override
 * graphs the registry knows about.
 *
 * Validates structural integrity: every edge must reference existing
 * node ids and node ids must be unique. The frontend should pre-validate
 * but the use case re-checks defensively.
 */
import type { IAgentGraphOverrideRepository } from '../../ports/output/repositories/agent-graph-override-repository.interface.js';
import type { ICustomAgentRepository } from '../../ports/output/repositories/custom-agent-repository.interface.js';
import type { AgentGraphOverride } from '../../../domain/generated/output.js';
import { type BuiltinGraphEdge, type BuiltinGraphNode } from '../../services/builtin-graph-registry.js';
export interface UpsertAgentGraphOverrideInput {
    agentType: string;
    nodes: BuiltinGraphNode[];
    edges: BuiltinGraphEdge[];
    /** Author of the override; defaults to 'user'. */
    createdBy?: string;
}
export declare class UpsertAgentGraphOverrideUseCase {
    private readonly overrides;
    private readonly customAgents;
    constructor(overrides: IAgentGraphOverrideRepository, customAgents: ICustomAgentRepository);
    execute(input: UpsertAgentGraphOverrideInput): Promise<AgentGraphOverride>;
}
//# sourceMappingURL=upsert-agent-graph-override.use-case.d.ts.map