import * as _sdcorejs_angular_forms_models from '@sdcorejs/angular/forms/models'; import { ɵSdFormControlParent as _SdFormControlParent, SdViewed, SdViewedInput, SdFormControl } from '@sdcorejs/angular/forms/models'; import * as _angular_core from '@angular/core'; import { ElementRef, TemplateRef } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { SdModal } from '@sdcorejs/angular/components/modal'; import { SdQuery, SdQueryField } from '@sdcorejs/angular/components/query-bar'; import { SdTable, SdTableColumn, SdTableOption, SdTableFilterRequest } from '@sdcorejs/angular/components/table'; import { PagingReq } from '@sdcorejs/utils/models'; type SdEntityPickerModel = TKey | TKey[] | null | undefined; interface SdEntityPickerPage { readonly items: T[]; readonly total: number; } interface SdEntityPickerRequest { readonly query: SdQuery; readonly pageIndex: number; readonly pageSize: number; readonly orderBy?: string; readonly orderDirection?: 'ASC' | 'DESC'; readonly signal: AbortSignal; } interface SdEntityPickerDataProvider { load(request: SdEntityPickerRequest): SdEntityPickerPage | Promise>; hydrate?(keys: readonly TKey[], signal: AbortSignal): T[] | Promise; } interface SdEntityPickerSelectedTemplateContext { readonly $implicit: readonly T[]; readonly entities: readonly T[]; readonly keys: readonly TKey[]; } interface SdEntityPickerRowTemplateContext { readonly $implicit: T; readonly item: T; } declare class SdEntityPickerSelectedTemplateDirective { readonly template: TemplateRef>; static ngTemplateContextGuard(_directive: SdEntityPickerSelectedTemplateDirective, _context: unknown): _context is SdEntityPickerSelectedTemplateContext; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵdir: _angular_core.ɵɵDirectiveDeclaration, "ng-template[sdEntityPickerSelected]", never, {}, {}, never, never, true, never>; } declare class SdEntityPickerRowTemplateDirective { readonly template: TemplateRef>; static ngTemplateContextGuard(_directive: SdEntityPickerRowTemplateDirective, _context: unknown): _context is SdEntityPickerRowTemplateContext; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵdir: _angular_core.ɵɵDirectiveDeclaration, "ng-template[sdEntityPickerRow]", never, {}, {}, never, never, true, never>; } declare class SdEntityPickerDetailTemplateDirective { readonly template: TemplateRef>; static ngTemplateContextGuard(_directive: SdEntityPickerDetailTemplateDirective, _context: unknown): _context is SdEntityPickerSelectedTemplateContext; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵdir: _angular_core.ɵɵDirectiveDeclaration, "ng-template[sdEntityPickerDetail]", never, {}, {}, never, never, true, never>; } declare class SdEntityPicker { #private; readonly trigger: _angular_core.Signal | undefined>; readonly modal: _angular_core.Signal; readonly table: _angular_core.Signal | undefined>; readonly selectedTemplate: _angular_core.Signal | undefined>; readonly rowTemplate: _angular_core.Signal | undefined>; readonly detailTemplate: _angular_core.Signal | undefined>; readonly autoIdInput: _angular_core.InputSignal; readonly autoId: _angular_core.Signal; readonly name: _angular_core.InputSignal; readonly form: _angular_core.InputSignalWithTransform | undefined, _SdFormControlParent>; readonly label: _angular_core.InputSignal; readonly placeholder: _angular_core.InputSignal; readonly modalTitle: _angular_core.InputSignal; readonly ariaLabel: _angular_core.InputSignal; readonly provider: _angular_core.InputSignal | null | undefined>; readonly columns: _angular_core.InputSignal[]>; readonly queryFields: _angular_core.InputSignal[]>; readonly pageSize: _angular_core.InputSignal; readonly valueField: _angular_core.InputSignal<(T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string) | undefined>; readonly keySelector: _angular_core.InputSignal<((item: T) => TKey) | undefined>; readonly displayField: _angular_core.InputSignal<(T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string) | undefined>; readonly displayWith: _angular_core.InputSignal<((item: T) => string) | undefined>; readonly compareWith: _angular_core.InputSignal<(left: TKey, right: TKey) => boolean>; readonly disabledEntity: _angular_core.InputSignal<((item: T) => boolean) | undefined>; readonly multiple: _angular_core.InputSignalWithTransform; readonly required: _angular_core.InputSignalWithTransform; readonly clearable: _angular_core.InputSignalWithTransform; readonly disabled: _angular_core.InputSignalWithTransform; readonly readonly: _angular_core.InputSignalWithTransform; readonly viewed: _angular_core.InputSignalWithTransform; readonly addable: _angular_core.InputSignalWithTransform; readonly model: _angular_core.ModelSignal>; readonly sdChange: _angular_core.OutputEmitterRef>; readonly sdAdd: _angular_core.OutputEmitterRef; readonly sdLoadError: _angular_core.OutputEmitterRef; readonly formControl: SdFormControl; readonly connectorState: _angular_core.Signal<_sdcorejs_angular_forms_models.ɵSdFormControlConnectorState>>; readonly draftKeys: _angular_core.WritableSignal; readonly loadError: _angular_core.WritableSignal; readonly loading: _angular_core.WritableSignal; readonly hydrating: _angular_core.WritableSignal; readonly query: _angular_core.WritableSignal>; readonly modelKeys: _angular_core.Signal; readonly effectivePlaceholder: _angular_core.Signal; readonly effectiveModalTitle: _angular_core.Signal; readonly selectedEntities: _angular_core.Signal; readonly draftEntities: _angular_core.Signal; readonly displayText: _angular_core.Signal; readonly selectedTemplateContext: _angular_core.Signal>; readonly detailTemplateContext: _angular_core.Signal>; readonly tableOption: _angular_core.Signal>; constructor(); open(): void; applySelection(): void; cancel(): void; clear(event?: Event): void; onModalClosed(): void; onTableSelect(item: T, selectedItems: T[]): void; onTableSelectAll(selectedItems: T[], pageItems?: T[]): void; onQueryChange(query: SdQuery): void; loadPage(filterRequest: SdTableFilterRequest, pagingRequest: PagingReq): Promise>; retry(): void; add(): void; keyOf(item: T): TKey; displayEntity(item: T): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "sd-entity-picker", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "modalTitle": { "alias": "modalTitle"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "provider": { "alias": "provider"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "queryFields": { "alias": "queryFields"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "keySelector": { "alias": "keySelector"; "required": false; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledEntity": { "alias": "disabledEntity"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "addable": { "alias": "addable"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "sdChange": "sdChange"; "sdAdd": "sdAdd"; "sdLoadError": "sdLoadError"; }, ["selectedTemplate", "rowTemplate", "detailTemplate"], never, true, never>; } declare function normalizePickerKeys(value: SdEntityPickerModel, multiple: boolean): TKey[]; export { SdEntityPicker, SdEntityPickerDetailTemplateDirective, SdEntityPickerRowTemplateDirective, SdEntityPickerSelectedTemplateDirective, normalizePickerKeys }; export type { SdEntityPickerDataProvider, SdEntityPickerModel, SdEntityPickerPage, SdEntityPickerRequest, SdEntityPickerRowTemplateContext, SdEntityPickerSelectedTemplateContext };