export declare const PROMPT_PACK_INTERNAL_MATERIAL_KINDS: readonly ["system", "user", "tool", "command", "cmp", "memory", "file", "retrieval", "event", "runtime"];
export type PromptPackInternalMaterialKind = (typeof PROMPT_PACK_INTERNAL_MATERIAL_KINDS)[number];
export type PromptPackMaterialKind = PromptPackInternalMaterialKind | "tool-summary" | "command-injection";
export type PromptPackMaterialSourceCategory = "declared-built-in" | "process-product" | "user-request";
export declare const PROMPT_PACK_SEGMENT_KINDS: readonly ["stableSystemCore", "declaredRuntimeContext", "toolDeclarations", "projectContext", "sessionSummary", "memoryContext", "retrievedContext", "observations", "userTurn", "assistantScratchpadPlan"];
export type PromptPackSegmentKind = (typeof PROMPT_PACK_SEGMENT_KINDS)[number];
export declare const PROMPT_PACK_PROVIDER_VISIBLE_SEGMENT_KINDS: ("stableSystemCore" | "declaredRuntimeContext" | "toolDeclarations" | "projectContext" | "sessionSummary" | "memoryContext" | "retrievedContext" | "observations" | "userTurn")[];
export declare const BASIC_CORE_PROMPT_MATERIAL_ID: "praxis:basic-core-prompt";
export declare const BASIC_CORE_PROMPT_SOURCE: "runtime.basicCorePrompt";
export declare const PROMPT_PACK_TOOL_MATERIAL_TYPES: readonly ["policy", "declaration", "result", "call-state"];
export type PromptPackToolMaterialType = (typeof PROMPT_PACK_TOOL_MATERIAL_TYPES)[number];
export type PromptPackBoundary = "input" | "contract" | "governance" | "scope" | "budget" | "material" | "injection";
export type PromptPackErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "EMPTY_MATERIALS" | "EMPTY_MATERIAL_TEXT" | "MISSING_OPERATION" | "MISSING_TARGET_PROVIDER" | "MATERIAL_NOT_FOUND" | "PROTECTED_MATERIAL" | "INVALID_BUDGET" | "BUDGET_EXCEEDED" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "UNTRUSTED_INJECTION";
export type PromptPackGate = {
    accepted: boolean;
    reason?: string;
};
export type PromptPackBudget = {
    maxMaterials?: number;
    maxEstimatedTokens?: number;
    maxMaterialCharacters?: number;
};
export type PromptPackMaterialDraft = {
    id?: string;
    kind: PromptPackMaterialKind;
    text: string;
    source?: string;
    sourceCategory?: PromptPackMaterialSourceCategory;
    priority?: number;
    estimatedTokens?: number;
    trusted?: boolean;
    scope?: string;
    promptSegmentKind?: PromptPackSegmentKind;
    internalOnly?: boolean;
    metadata?: Readonly<Record<string, string | number | boolean | object>>;
};
export type DefinedPromptMaterial = {
    id: string;
    kind: PromptPackMaterialKind;
    text: string;
    source: string;
    sourceCategory: PromptPackMaterialSourceCategory;
    priority: number;
    estimatedTokens: number;
    trusted: boolean;
    scope?: string;
    promptSegmentKind: PromptPackSegmentKind;
    internalOnly: boolean;
    metadata: Readonly<Record<string, string | number | boolean | object>>;
};
export type PromptPackDefinitionRequest = {
    runtimeId?: string;
    sessionId?: string;
    targetModel?: string;
    loweringHint?: string;
    materials?: readonly PromptPackMaterialDraft[];
    includeBasicCorePrompt?: boolean;
    basicCorePromptText?: string;
    budget?: PromptPackBudget;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: PromptPackGate;
    governance?: PromptPackGate;
};
export type PromptPackError = {
    code: PromptPackErrorCode;
    message: string;
    boundary: PromptPackBoundary;
    safeForRuntimeInspection: true;
};
export type PromptPackDefinition = {
    kind: "prompt-pack-definition";
    runtimeId: string;
    sessionId: string;
    targetModel?: string;
    loweringHint?: string;
    materials: readonly DefinedPromptMaterial[];
    materialKinds: readonly PromptPackMaterialKind[];
    materialSourceCategories: readonly PromptPackMaterialSourceCategory[];
    orderedSegmentKinds: readonly PromptPackSegmentKind[];
    providerVisibleSegmentKinds: readonly PromptPackSegmentKind[];
    basicCorePromptMaterialId: typeof BASIC_CORE_PROMPT_MATERIAL_ID;
    budget: PromptPackBudget;
    requestedScopes: readonly string[];
    providerPayloadCreated: false;
    governanceRequired: true;
    unsafeSideEffects: false;
};
export type PromptPackDefinitionResult = {
    ok: true;
    definition: PromptPackDefinition;
    events: readonly string[];
} | {
    ok: false;
    error: PromptPackError;
    events: readonly string[];
};
export declare const promptPackDefinerDescriptor: {
    readonly capability: "prompt-definer";
    readonly route: "agent_executionEngine.promptPack";
    readonly purpose: "define Praxis internal PromptPack constructs and the protected basic core prompt head";
    readonly internalMaterialKinds: readonly ["system", "user", "tool", "command", "cmp", "memory", "file", "retrieval", "event", "runtime"];
    readonly sourceCategories: readonly ["declared-built-in", "process-product", "user-request"];
    readonly orderedSegmentKinds: readonly ["stableSystemCore", "declaredRuntimeContext", "toolDeclarations", "projectContext", "sessionSummary", "memoryContext", "retrievedContext", "observations", "userTurn", "assistantScratchpadPlan"];
    readonly providerVisibleSegmentKinds: ("stableSystemCore" | "declaredRuntimeContext" | "toolDeclarations" | "projectContext" | "sessionSummary" | "memoryContext" | "retrievedContext" | "observations" | "userTurn")[];
    readonly basicCorePromptMaterialId: "praxis:basic-core-prompt";
    readonly providerPayloadCreated: false;
    readonly unsafeSideEffects: false;
};
export declare function inferPromptMaterialSourceCategory(material: Pick<PromptPackMaterialDraft, "kind" | "source" | "sourceCategory">): PromptPackMaterialSourceCategory;
export declare function inferPromptPackSegmentKind(material: PromptPackMaterialDraft): PromptPackSegmentKind;
export declare function estimatePromptTokens(text: string): number;
export declare function detectPromptInjectionRisk(text: string): boolean;
export declare function createBasicCorePromptMaterial(textOverride?: string): PromptPackMaterialDraft;
export declare function definePromptPack(request?: PromptPackDefinitionRequest): PromptPackDefinitionResult;
