/**
 * Helpers for keeping apiTestingState in sync when SDK APIs are created or edited
 * via file tools (build_writeFile, build_editFile, build_multiEditFile).
 *
 * Mirrors how sdk-api-discovery.ts in the library iframe discovers APIs by
 * reading server/apis/index.ts as the single source of truth. The parsed
 * registry is cached on clark.context.sdkApiRegistryEntryPoints so we only
 * re-parse when the registry file itself changes.
 */
import type { Clark } from "../../../state-machine/clark-fsm.js";
import type { ClarkStateHandlerParams } from "../../../state-machine/clark-fsm.js";
/**
 * Marks affected SDK APIs as untested so build_debug and build_finalize will
 * require testApi before finalizing.
 *
 * Uses the cached SDK API registry (server/apis/index.ts) as the source of
 * truth — the same file that sdk-api-discovery.ts uses in the library iframe.
 *
 * Behaviour:
 * - Editing server/apis/index.ts: re-parses the new content, diffs against
 *   the cached version, and marks only newly added / changed APIs.
 * - Editing a registered entry-point file: marks only the APIs that use it.
 * - Editing a file scoped to an API's directory subtree (e.g. files under
 *   server/apis/my-api/ when the entry point is server/apis/my-api.ts or
 *   server/apis/my-api/index.ts): marks only the owning API(s).
 * - All other files (shared modules, files outside server/): no-op — the
 *   agent is not forced to re-test unrelated APIs.
 */
export declare function markSdkApiAsUntestedIfNeeded(filePath: string, clark: Clark, services: Pick<ClarkStateHandlerParams, "appShell" | "features">): Promise<void>;
//# sourceMappingURL=api-testing-state.d.ts.map