/**
 * Behavior AI Service — generates pure TypeScript function bodies for
 * behavior steps that weren't matched by the realize engine's convention
 * patterns.
 *
 * Architecture (post AI-SDK replatform 2026-04; delivery unified 2026-05):
 * - Delegates to the Vercel AI SDK via the model resolver. Provider choice
 *   is driven by SPECVERSE_AI_PROVIDER (claude-cli | anthropic |
 *   openai-compatible | stub) with sensible defaults per environment.
 * - Claude-CLI provider preserves the Max-subscription zero-cost path
 *   (spawn claude --print --session-id/--resume). API provider uses
 *   Anthropic prompt caching for equivalent savings.
 * - The behavior prompt loads via the shared `loadPrompt('behavior')` (composed
 *   bundle preferred, partials inlined; runtime-expanded source as fallback) and
 *   the system message is built by the shared `assembleDeliverySystem`: thin
 *   (role + read-the-skill pointer) on claude-cli when the `behavior` family
 *   skill is installed — the CLI auto-loads the grounding — else the full
 *   composed grounding inlined. Same delivery path runPrompt uses, so behavior
 *   gets the family-skill token savings for free.
 *
 * Used by ai-behaviors-generator at realize time and by `spv ai regenerate`.
 */
export interface BehaviorAIServiceOptions {
    /** Model override. Passed through to the resolver; interpretation is provider-specific. */
    model?: string;
    /** Per-call timeout (ms). Default 120_000. Only honoured by the claude-cli provider. */
    timeout?: number;
}
export interface BehaviorGenerateContext {
    step: string;
    modelName: string;
    operationName: string;
    functionName: string;
    parameterNames: string[];
    availableModels: string[];
    spec?: any;
    /** Declared return type from spec (TypeScript type string) */
    returnType?: string;
}
/**
 * Service class kept for API compatibility with ai-behaviors-generator.
 * Internally delegates to the AI SDK via the model resolver.
 */
export declare class BehaviorAIService {
    private model;
    private providerId;
    private userTemplate;
    private system;
    private timeout;
    /** Non-null after generateBehavior() succeeds once. */
    get isAvailable(): boolean;
    constructor(options?: BehaviorAIServiceOptions);
    /**
     * Start a new session for a controller. Session semantics are now owned
     * by the provider — for claude-cli that's the spawn-with-session-id
     * mechanism; for anthropic API it's the prompt-cache marker. We just
     * record a no-op for callers that expect a session id to log.
     */
    startSession(controllerName: string): string;
    /** Generate a function body for a behavior step. */
    generateBehavior(ctx: BehaviorGenerateContext): Promise<string | null>;
    /** End the current session — no-op now that session state lives in the provider. */
    endSession(): void;
    private buildUserPrompt;
    private extractCode;
}
//# sourceMappingURL=behavior-ai-service.d.ts.map