import * as i0 from '@angular/core'; import { OnInit, OnChanges, OnDestroy, EventEmitter, SimpleChanges, Type, ViewContainerRef } from '@angular/core'; import { ReportDesignerOptions, ReportDesignerApi, ReportDesignerInstance } from '@broadpaper/editor'; export { ExportContext, FeatureFlags, ReportDesignerInstance, ReportDesignerOptions, SampleDataSet } from '@broadpaper/editor'; import { PreviewOptions, LayoutResult, ReportViewerOptions, ReportViewer } from '@broadpaper/renderer'; import { ReportTemplate, AnyVersionTemplate, DataSource, Theme, BlockDefinition, Issue, ReportData, InspectorApi, InspectorComponent } from '@broadpaper/core'; /** * The BroadPaper designer as an Angular standalone component. * * * * Runs outside Angular's zone so editor interactions never trigger host change detection. */ declare class ReportDesignerComponent implements OnInit, OnChanges, OnDestroy { template?: ReportTemplate | AnyVersionTemplate; dataSources?: DataSource[]; sampleData?: ReportDesignerOptions["sampleData"]; theme?: Theme; themes?: Theme[]; blocks?: Array>; library?: ReportDesignerOptions["library"]; features?: ReportDesignerOptions["features"]; enabledTiers?: ReportDesignerOptions["enabledTiers"]; locale?: string; currency?: string; timeZone?: string; appearance?: ReportDesignerOptions["appearance"]; zoom?: ReportDesignerOptions["zoom"]; pdfService?: ReportDesignerOptions["pdfService"]; onExportPdf?: ReportDesignerOptions["onExportPdf"]; onSave?: ReportDesignerOptions["onSave"]; /** AI template design: the host's provider. The panel is hidden without one. See the "AI template design" guide. */ ai?: ReportDesignerOptions["ai"]; templateChange: EventEmitter; selectionChange: EventEmitter; validate: EventEmitter; modeChange: EventEmitter<"design" | "preview">; themeChange: EventEmitter; ready: EventEmitter; private readonly host; private readonly zone; private instance; private lastEmitted; /** The underlying framework-neutral API (available after `ready`). */ get api(): ReportDesignerInstance | null; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private options; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** Read-only paginated preview: the same pipeline the editor and the PDF use. */ declare class ReportPreviewComponent implements OnInit, OnChanges, OnDestroy { template: ReportTemplate; data?: ReportData; theme?: Theme; dataSources?: DataSource[]; blocks?: Array>; mode: PreviewOptions["mode"]; zoom?: number; locale?: string; currency?: string; layout: EventEmitter; private readonly host; private readonly zone; private handle; private registry; ngOnInit(): void; ngOnChanges(): void; ngOnDestroy(): void; private options; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * The report as a page a reader can read. * * * * Read-only and page-shaped, with charts a reader can point at — the same * pipeline the PDF uses, so the screen and the file agree. Give the host * element a height: the viewer fills it and scrolls inside itself, and in a box * with no height it collapses to its toolbar. * * Like the designer, it runs outside Angular's zone. Scrolling a long report * fires a page-position event per frame, and running change detection on each * of them would make the host application's performance this component's fault. */ declare class ReportViewerComponent implements OnInit, OnChanges, OnDestroy { template: ReportTemplate; data?: ReportData; theme?: Theme; dataSources?: DataSource[]; blocks?: Array>; /** "width" (default), "page" or "actual". Ignored when `zoom` is set. */ fit?: ReportViewerOptions["fit"]; zoom?: number; toolbar?: boolean; interactions?: ReportViewerOptions["interactions"]; locale?: string; currency?: string; label?: string; pageChange: EventEmitter; layout: EventEmitter; private readonly host; private readonly zone; private handle; private registry; /** The underlying framework-neutral viewer, for `goToPage`, `setZoom` and `print`. */ get api(): ReportViewer | null; ngOnInit(): void; ngOnChanges(): void; ngOnDestroy(): void; private options; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Wraps an Angular component as a custom inspector field for `defineBlock`. * The component receives the InspectorApi via an `api` input (setter or signal). */ declare function angularInspector(component: Type, vcr: ViewContainerRef): InspectorComponent; export { ReportDesignerComponent, ReportPreviewComponent, ReportViewerComponent, angularInspector };