import * as i0 from "@angular/core"; import { EventEmitter, OnChanges, OnInit, SimpleChanges } from "@angular/core"; export type MultiSelectRowIdentifier = string | number; export declare class MojMultiSelectBodyDirective implements OnInit, OnChanges { private readonly hostElementRef; private readonly baseClasses; rowId: MultiSelectRowIdentifier; ariaLabel: string; extraClasses: string; selectionChange: EventEmitter<{ rowId: MultiSelectRowIdentifier; checked: boolean; }>; /** * Synchronises the nested checkbox aria-label based on directive inputs. */ private syncInputState; get classes(): string; /** * Applies initial input aria-label after directive initialisation. */ ngOnInit(): void; /** * Re-syncs checkbox aria-label when aria-related inputs change. * * @param changes - Angular change map for current input updates. */ ngOnChanges(changes: SimpleChanges): void; onCheckboxChange(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export declare class MojMultiSelectHeadDirective implements OnInit, OnChanges { private readonly hostElementRef; private readonly baseClasses; extraClasses: string; selectAllIndeterminate: boolean; ariaLabel: string; toggleAll: EventEmitter; /** * Synchronises the nested checkbox UI state with directive inputs. * Updates indeterminate and aria-label when the input element is present. */ private syncInputState; get classes(): string; /** * Applies the initial checkbox aria and indeterminate state after init. */ ngOnInit(): void; /** * Re-syncs checkbox state when relevant inputs change. * * @param changes - Angular change map for current input updates. */ ngOnChanges(changes: SimpleChanges): void; onCheckboxChange(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Resolves a unique row id from a row value and its index. */ export type MultiSelectRowIdResolver = (row: TRow, index: number) => TRowId; /** * Checks whether a single row is currently selected. * * @param row - Row object to evaluate. * @param index - Row index passed to the id resolver. * @param selectedRowIds - Current selected row id set. * @param getRowId - Resolver used to extract row id. */ export declare const isMultiSelectRowSelected: (row: TRow, index: number, selectedRowIds: ReadonlySet, getRowId: MultiSelectRowIdResolver) => boolean; /** * Checks whether all visible rows are selected. * Returns false when there are no rows. * * @param rows - Rows currently displayed. * @param selectedRowIds - Current selected row id set. * @param getRowId - Resolver used to extract row id. */ export declare const areAllMultiSelectRowsSelected: (rows: readonly TRow[], selectedRowIds: ReadonlySet, getRowId: MultiSelectRowIdResolver) => boolean; /** * Checks whether selection is partial for the current rows. * Returns true only when at least one row is selected and at least one is unselected. * * @param rows - Rows currently displayed. * @param selectedRowIds - Current selected row id set. * @param getRowId - Resolver used to extract row id. */ export declare const areSomeMultiSelectRowsSelected: (rows: readonly TRow[], selectedRowIds: ReadonlySet, getRowId: MultiSelectRowIdResolver) => boolean; /** * Toggles selection for a single row id and returns a new selection set. * * @param selectedRowIds - Current selected row id set. * @param rowId - Row id to add or remove. * @param checked - True to add; false to remove. */ export declare const toggleMultiSelectRow: (selectedRowIds: ReadonlySet, rowId: TRowId, checked: boolean) => Set; /** * Toggles selection for all visible rows and returns a new selection set. * Existing ids not present in `rows` are preserved. * * @param rows - Rows currently displayed. * @param selectedRowIds - Current selected row id set. * @param getRowId - Resolver used to extract row id. * @param checked - True to add visible ids; false to remove visible ids. */ export declare const toggleAllMultiSelectRows: (rows: readonly TRow[], selectedRowIds: ReadonlySet, getRowId: MultiSelectRowIdResolver, checked: boolean) => Set;