import type { ExecEngineRuntimeCaller, ExecEngineRuntimeGate } from "./execEngineRuntime.js";
export type PromptPackBindingBoundary = "input" | "contract" | "governance" | "runtime-state" | "binding";
export type PromptPackLayerKind = "system" | "user" | "tool-summary" | "command" | "context" | "memory" | "runtime-event" | (string & {});
export type PromptPackBindingErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_PROMPT_PACK" | "MISSING_PROMPT_PACK_ID" | "EMPTY_PROMPT_PACK" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type PromptPackBindingError = {
    code: PromptPackBindingErrorCode;
    message: string;
    boundary: PromptPackBindingBoundary;
    publicSafe: true;
};
export type PromptPackLayerRef = {
    kind: PromptPackLayerKind;
    ref: string;
    sourceCategory?: "declared-built-in" | "process-product" | "user-request";
};
export type PromptPackBindingInput = {
    id?: string;
    source?: "application" | "official-module" | "execution-engine" | "runtime" | "test";
    layers?: readonly PromptPackLayerRef[];
    metadata?: Readonly<Record<string, unknown>>;
};
export type PromptPackBindingRequest = {
    runtimeId?: string;
    caller?: ExecEngineRuntimeCaller;
    promptPack?: PromptPackBindingInput;
    runtimeReady?: boolean;
    contract?: ExecEngineRuntimeGate;
    governance?: ExecEngineRuntimeGate;
};
export type PromptPackBinding = {
    bindingId: string;
    runtimeId: string;
    promptPackId: string;
    caller: ExecEngineRuntimeCaller;
    source: "application" | "official-module" | "execution-engine" | "runtime" | "test";
    route: "runtime.execEngine.promptPack";
    layers: readonly PromptPackLayerRef[];
    layerKinds: readonly PromptPackLayerKind[];
    metadata: Readonly<Record<string, unknown>>;
    contractChecked: true;
    governanceChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type PromptPackBindingResult = {
    ok: true;
    binding: PromptPackBinding;
    events: readonly string[];
} | {
    ok: false;
    error: PromptPackBindingError;
    events: readonly string[];
};
export declare function bindPromptPack(request?: PromptPackBindingRequest): PromptPackBindingResult;
