import type { PageInfo, ReportInfo } from "../types.js"; /** * Try to match a user-supplied report selector against a list of * discovered reports. * * Matching priority (from the plan): * 1. Exact PID match (selector is parseable as a number). * 2. Exact full path match (with normalised separator/path forms). * 3. Exact file name match. * 4. Exact name (without extension) match. * 5. Case-insensitive comparisons of the above. * * If precisely one report matches, return it. * If multiple match, throw AmbiguousMatchError with candidates. * If none match, throw NotFoundError. * * @param selector - The user-supplied report identifier. * @param reports - List of discovered reports. * @returns The uniquely matched ReportInfo. */ export declare function matchReport(selector: string, reports: ReportInfo[]): ReportInfo; /** * Select a page within a report by name or ID. * * Rules: * - If pageSelector is empty/undefined and report has exactly one page, * that page is returned. * - If pageSelector is empty/undefined and report has multiple pages, * an error is thrown. * - pageSelector can be a page name, displayName, or page ID. * - Case-insensitive matching. * - **Ambiguous duplicates**: if multiple pages share the same exact or * case-insensitive name (but distinct IDs), the match is rejected with * ValidationError. Direct pageId matching is always deterministic. * * @throws NotFoundError if no matching page. * @throws ValidationError if page is required but not provided, or ambiguous. */ export declare function matchPage(pageSelector: string | undefined, report: ReportInfo): PageInfo; /** * Validate the combination of `page` and `all` parameters for screenshot. * * - all=true with page set is rejected as ambiguous. * - all=false (or default) without page is only valid for single-page reports. * * @throws ValidationError on invalid combination. */ export declare function validateScreenshotParams(page: string | undefined, all: boolean | undefined): void; //# sourceMappingURL=reports.d.ts.map