import type { AssembledPromptToolDeclaration, AssembledPromptToolResult, AssembledPromptToolState, StandardPromptPack } from "./promptAssembler.js";
import type { PromptPackError } from "./promptDefiner.js";
export type PromptMapperProvider = "openai" | "anthropic" | "gemini" | "custom";
export type PromptMapperRequest = {
    runtimeId?: string;
    sessionId?: string;
    promptPack?: StandardPromptPack;
    targetProvider?: PromptMapperProvider;
    targetModel?: string;
    openaiInstructionRole?: "developer" | "system";
};
export type PromptProviderPayload = {
    provider: PromptMapperProvider;
    model?: string;
    endpoint: "responses" | "messages" | "generateContent" | "custom";
    body: Readonly<Record<string, unknown>>;
};
export type MappedPromptBlocks = {
    system: string;
    user: string;
    tool: string;
};
export type MappedToolPayloads = {
    declarations: readonly AssembledPromptToolDeclaration[];
    results: readonly AssembledPromptToolResult[];
    callStates: readonly AssembledPromptToolState[];
};
export type MappedPromptPack = {
    kind: "praxis.promptPack.mapped";
    runtimeId: string;
    sessionId: string;
    targetProvider: PromptMapperProvider;
    targetModel?: string;
    sourcePromptPackId: string;
    blocks: MappedPromptBlocks;
    tools: MappedToolPayloads;
    providerPayload: PromptProviderPayload;
    providerPayloadCreated: true;
    unsafeSideEffects: false;
};
export type PromptMapperResult = {
    ok: true;
    mappedPack: MappedPromptPack;
    events: readonly string[];
} | {
    ok: false;
    error: PromptPackError;
    events: readonly string[];
};
export declare const promptMapperDescriptor: {
    readonly capability: "prompt-mapper";
    readonly route: "agent_executionEngine.promptPack";
    readonly purpose: "map assembled Praxis PromptPack context into target provider payload shape";
    readonly providerPayloadCreated: true;
    readonly unsafeSideEffects: false;
};
export declare function mapPromptMaterials(request?: PromptMapperRequest): PromptMapperResult;
