import { ChangeDetectorRef, OnInit, WritableSignal } from '@angular/core'; import { CardData, CardDataViewComponent, ColumnDefinition, DataViewComponent, FilterCondition, SortCondition } from 'verben-ng-ui'; import { PermissionConfig, Status, TaskAssignmentType, Workflow, WorkflowOperation } from 'verben-workflow-ui/src/lib/models'; import * as i0 from "@angular/core"; export declare class WorkflowsComponent implements OnInit { private cdr; cardDataView: CardDataViewComponent; dataView: DataViewComponent; designerUrl: import("@angular/core").InputSignal; permissionConfig: import("@angular/core").InputSignal; private facade; private destroyRef; readonly config: import("verben-workflow-ui/src/lib/base").BasePageConfig; readonly styles: import("verben-ng-ui").TableStyles; data: import("@angular/core").Signal; cardData: WritableSignal; readonly isTableView$: import("rxjs").Observable; readonly filters$: import("rxjs").Observable; readonly restoredColumns$: import("rxjs").Observable[]>; operations: import("@angular/core").Signal; formGroupConfig: WritableSignal>; assignmentTypes: TaskAssignmentType[]; statuses: Status[]; visibleColumns: WritableSignal[]>; selectedColumnCount: number; selectedSortCount: number; selectedFilterTableCount: number; /** Workflow queued for deletion, pending confirmation. */ pendingDelete: WritableSignal; canExport: import("@angular/core").Signal; canCreate: import("@angular/core").Signal; canDesign: import("@angular/core").Signal; constructor(cdr: ChangeDetectorRef); ngOnInit(): void; /** * Tear down the card view's own selection. * * Nulling the facade's currentCardData only empties the form's fields — the * CardDataViewComponent keeps a separate `currentItem`, and that is what holds * the right-hand panel open. Without this the form goes blank after a search * but the panel stays on screen. */ private clearCardView; /** * The record open in the detail form. Backed by the facade so a refetch can * close it — loadData() clears the selection before replacing the list. */ get currentData(): CardData | null; set currentData(value: CardData | null); loadMore(): Promise; /** Backs lib-data-xport's dataQueryFunction; bound in the constructor. */ loadData(range: { skip: number; limit: number; }): Promise; handleSearch(event: { key: string; value: string; }): void; onFilterApplied(filters: FilterCondition[]): void; onSortUpdated(sorts: SortCondition[]): void; onColumnsUpdated(updatedColumns: ColumnDefinition[]): void; onSave(data: Partial): Promise; /** * Commit an inline table-row edit. The table owns the row's form group (via * config.formGroupConfig) and hands back its value, replacing the old * per-row `editForms` Map. * * The edits must be merged over the row at `index` — not over the record open * in the card form, which is what the old `(rowSave)="onSave($event.data)"` * binding did on the sibling pages. */ onRowSave(event: { index: number; key: number | string; data: Partial; }): Promise; requestDelete(row: Workflow): void; cancelDelete(): void; confirmDelete(): Promise; onSelectionChange(_selectedRows: Workflow[]): void; onViewChange(isTableView: boolean): void; onStateChange(event: { key: string; value: boolean; }): void; cardClicked(item: CardData, toggleView?: boolean): void; /** Open a table row's record in the card view. */ goToCardView(code: string): void; handleExport(exportedData: Partial[]): void; handleFetchedExport({ skip, limit }: { skip: number; limit: number; }): void; private downloadCSV; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }