/**
 * Resolves which projects one coding harness touched while answering a single message.
 *
 * The runtime log streams what the harness really did, so a project counts as touched when the
 * harness named it in a tool invocation — reading, searching, running, or editing files inside
 * `projects/<project-name>/`. Only tool payloads are inspected: tool results and assistant
 * narration are ignored so a project merely mentioned in the conversation is never reported.
 *
 * Every candidate is matched against the projects that really exist, which both filters prompt
 * placeholders such as `projects/<project-name>/` and keeps the reported names canonical.
 *
 * @param options - Raw runtime log content and the project directory names of the agent.
 * @returns Touched project names in the canonical spelling, ordered by first appearance.
 * @private internal utility of the agent-message runtime
 */
export declare function resolveAgentMessageTouchedProjectNames(options: {
    readonly logText: string | null | undefined;
    readonly knownProjectNames: ReadonlyArray<string>;
}): ReadonlyArray<string>;
