/** * The intentionally small contract between the Pi/CLI frontends and the core. * * The coordinator's core implementation should export `listReports` and * `captureScreenshots` from `src/core/index.ts`. Keeping the adapter here lets * both frontends share one contract without importing transport/discovery * internals. */ export interface ReportPage { id: string; name: string; } export interface PowerBiReport { pid: number; name: string; fileName?: string; path?: string; hasUnsavedChanges?: boolean; bridgeStatus: string; pagesSource?: string; pages: ReportPage[]; warnings?: string[]; } export interface ListReportsResult { reports: PowerBiReport[]; warnings?: string[]; } export interface ScreenshotRequest { report?: string; page?: string; all: boolean; scale: number; output?: string; waitSeconds: number; } export type ScreenshotMetadata = Record; export interface SingleScreenshotResult { kind: "single"; path: string; metadata: ScreenshotMetadata; imageBase64: string; mediaType: "image/png" | "image/jpeg" | "image/webp"; } export interface BatchScreenshotItem { path: string; metadata: ScreenshotMetadata; } export interface AllScreenshotsResult { kind: "all"; screenshots: BatchScreenshotItem[]; report?: string; warnings?: string[]; } export type ScreenshotResult = SingleScreenshotResult | AllScreenshotsResult; export interface ListReportsOptions { signal?: AbortSignal; } export interface CaptureScreenshotsOptions { cwd: string; signal?: AbortSignal; } export interface PowerBiCoreApi { listReports(options?: ListReportsOptions): Promise; captureScreenshots(request: ScreenshotRequest, options: CaptureScreenshotsOptions): Promise; } export declare function getPowerBiCore(): PowerBiCoreApi; /** Test seam; production code should use getPowerBiCore(). */ export declare function resetPowerBiCoreForTests(): void; //# sourceMappingURL=core-api.d.ts.map