import type { ConfigSnapshot } from "@leitwerk-dev/protocol"; import type { LlmTurnDefinition } from "./define-process.js"; import { type PiBuiltInToolName, type ProcessPiConfig, type ResolvedProcessPiConfig } from "./types.js"; /** @internal */ type TemplateScalar = string | number | boolean; /** @internal */ type TemplateValue = TemplateScalar | TemplateContext | readonly TemplateValue[] | undefined; /** @internal */ export interface TemplateContext { /** @internal */ [key: string]: TemplateValue; } /** @internal */ export declare function createTemplateContext(input: { /** @internal */ params?: unknown; /** @internal */ process?: { /** @internal */ processId?: string | null; /** @internal */ externalId?: string | null; /** @internal */ externalUrl?: string | null; /** @internal */ selectedTurnId?: string | null; }; /** @internal */ projects?: ReadonlyArray<{ /** @internal */ key: string; /** @internal */ repoLocator: string; /** @internal */ baseBranch: string; /** @internal */ workBranch?: string | null; }>; }): TemplateContext; /** @internal */ export declare function interpolateTemplate(template: string, context: TemplateContext): string; /** @internal */ type TurnToolDefinitionLike = { /** @internal */ kind: "llm"; /** @internal */ availableTools: readonly PiBuiltInToolName[]; } | { /** @internal */ kind: string; }; /** @internal */ type ProcessTurnBindingLike = { /** @internal */ definition: TurnToolDefinitionLike; }; /** @internal */ type ProcessToolSource = TurnToolDefinitionLike | ProcessTurnBindingLike; /** @internal */ export declare function validatePiBuiltInToolArray(toolNames: readonly unknown[], context: string): string[]; /** @internal */ export declare function resolveTurnAvailableToolNames(input: { /** @internal */ turnId: string; /** @internal */ turnDef: LlmTurnDefinition; }): string[]; /** @internal */ export declare function collectProcessAvailableToolNames(turns: Iterable | undefined): string[]; /** @internal */ export declare function resolveProcessPiConfig(input: { /** @internal */ processId: string; /** @internal */ processPiConfig?: ProcessPiConfig; /** @internal */ turns?: Iterable; /** @internal */ configSnapshot?: ConfigSnapshot; /** @internal */ templateContext: TemplateContext; }): ResolvedProcessPiConfig; export { resolveTurnAvailableToolNames as resolveTurnActiveToolNames }; /** @internal */ export declare function expandPiAgentDir(agentDir: string): string; /** @internal */ export declare function resolvePiAgentDir(options: { /** @internal */ agentDir?: string | null; /** @internal */ configSnapshot?: ConfigSnapshot; /** @internal */ fallbackDir: string; }): string; //# sourceMappingURL=pi-config.d.ts.map