import { UserError } from "../../../user-error/dist/index.js"; export type HarnessPair = { ajsPath: string; mdPath: string; basename: string; }; export type HarnessFs = { readdir?(path: string, options?: { withFileTypes?: boolean; }): Promise>; stat(path: string): Promise<{ isFile(): boolean; isDirectory?(): boolean; }>; }; type HarnessPairSide = "ajs" | "md"; /** * A harness pair is two files sharing a basename, so a missing side is a user * mistake, not a system failure. Both kinds and search paths are hard to * discover, so the message carries the recovery: the CLI renders `message` only. */ export declare class MissingPairError extends UserError { readonly side: HarnessPairSide; readonly path: string; constructor(side: HarnessPairSide, path: string); } export declare class InvalidPairExtensionError extends Error { readonly extension: string; readonly path: string; constructor(path: string, extension: string); } export declare function resolvePair(inputPath: string, fs?: HarnessFs): Promise; export {};