import type { ModelMessage } from "ai";
import type { HandleMessageStreamEvent } from "#protocol/message.js";
import type { ResolvedDynamicSkillResolver } from "#runtime/types.js";
import type { ContextContainer } from "#context/container.js";
import { ContextKey } from "#context/key.js";
/**
 * Durable pending skill announcement text. Set by
 * {@link dispatchDynamicSkillEvent} whenever the dynamic skill manifest
 * changes. Read by the tool-loop to inject the announcement into model
 * context.
 */
export declare const PendingSkillAnnouncementKey: ContextKey<string>;
/**
 * Dispatches a stream event to dynamic skill resolvers. On a matching
 * event: runs handlers, materializes resolved skills to the sandbox,
 * cleans up removed skills, and stores a pending announcement for the
 * tool-loop to inject.
 */
export declare function dispatchDynamicSkillEvent(input: {
    readonly ctx: ContextContainer;
    readonly resolvers: readonly ResolvedDynamicSkillResolver[];
    readonly event: HandleMessageStreamEvent;
    readonly messages: readonly ModelMessage[];
}): Promise<void>;
