import type { InstructionsSourceRef } from "#discover/manifest.js";
import type { CompiledDynamicInstructionsDefinition, CompiledInstructions } from "#compiler/manifest.js";
import { type ModuleBackedDefinitionLoadOptions } from "#compiler/normalize-helpers.js";
/**
 * Compiled instructions entry produced from one authored `instructions/*`
 * file or flat `instructions.{md,ts,...}`.
 *
 * Either a static instructions definition or a dynamic resolver that
 * produces model messages at runtime.
 */
export type CompiledInstructionsEntry = {
    readonly kind: "instructions";
    readonly definition: CompiledInstructions;
} | {
    readonly kind: "dynamic-instructions";
    readonly definition: CompiledDynamicInstructionsDefinition;
};
/**
 * Compiles one authored instructions prompt source (markdown or
 * module-backed `defineInstructions`) into the normalized shape consumed
 * by the runtime.
 *
 * Module-backed static instructions sources execute once at build time —
 * the resulting markdown is captured into the compiled manifest. There is
 * no per-session re-evaluation at runtime.
 *
 * Module-backed dynamic instructions (exporting `defineDynamic`) are
 * classified and their event names recorded; the resolver runs at
 * runtime.
 */
export declare function compileInstructionsEntry(agentRoot: string, source: InstructionsSourceRef, options?: ModuleBackedDefinitionLoadOptions): Promise<CompiledInstructionsEntry>;
/**
 * @deprecated Use {@link compileInstructionsEntry} instead. Kept for
 * backwards compatibility with callers that pass a single source.
 */
export declare function compileInstructions(agentRoot: string, source: InstructionsSourceRef, options?: ModuleBackedDefinitionLoadOptions): Promise<CompiledInstructions>;
