import { type DefinedPromptMaterial, type PromptPackError, type PromptPackMaterialDraft } from "./promptDefiner.js";
export type PromptModificationOperation = {
    kind: "add";
    material: PromptPackMaterialDraft;
    reason?: string;
} | {
    kind: "drop";
    materialId: string;
    reason?: string;
} | {
    kind: "replace-text";
    materialId: string;
    text: string;
    reason?: string;
} | {
    kind: "adjust-priority";
    materialId: string;
    priority: number;
    reason?: string;
};
export type PromptModificationAuditRecord = {
    operation: PromptModificationOperation["kind"];
    materialId: string;
    reason: string;
    dryRun: true;
};
export type ModifiedPromptMaterial = DefinedPromptMaterial & {
    modifierRecords: readonly string[];
    protected: boolean;
};
export type PromptModifierRequest = {
    runtimeId?: string;
    sessionId?: string;
    materials?: readonly DefinedPromptMaterial[];
    operations?: readonly PromptModificationOperation[];
    allowUntrustedInjection?: boolean;
};
export type PromptModifierResult = {
    ok: true;
    materials: readonly ModifiedPromptMaterial[];
    auditRecords: readonly PromptModificationAuditRecord[];
    dryRun: true;
    providerPayloadCreated: false;
    events: readonly string[];
} | {
    ok: false;
    error: PromptPackError;
    events: readonly string[];
};
export declare const promptModifierDescriptor: {
    readonly capability: "prompt-modifier";
    readonly route: "agent_executionEngine.promptPack";
    readonly purpose: "plan audited changes to Praxis internal PromptPack constructs before assembly";
    readonly providerPayloadCreated: false;
    readonly unsafeSideEffects: false;
};
export declare function modifyPromptMaterials(request?: PromptModifierRequest): PromptModifierResult;
