@nice2dev/ui-enterprise 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,927 @@
1
+ import { default as default_2 } from 'react';
2
+ import { NiceBaseProps } from '@nice2dev/ui';
3
+ import { ReactNode } from 'react';
4
+
5
+ export declare type AccessEventType = 'login_success' | 'login_failed' | 'logout' | 'password_change' | 'password_reset' | 'mfa_enabled' | 'mfa_disabled' | 'mfa_challenged' | 'permission_change' | 'session_expired' | 'account_locked' | 'account_unlocked' | 'api_key_created' | 'api_key_revoked' | 'token_refresh' | 'suspicious_activity';
6
+
7
+ export declare interface AccessLogEntry {
8
+ id: string;
9
+ timestamp: Date | string;
10
+ userId: string;
11
+ userName?: string;
12
+ userEmail?: string;
13
+ eventType: AccessEventType;
14
+ ipAddress: string;
15
+ location?: GeoLocation;
16
+ device?: DeviceInfo;
17
+ riskScore: number;
18
+ riskLevel: RiskLevel;
19
+ success: boolean;
20
+ details?: Record<string, unknown>;
21
+ flags?: string[];
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+
25
+ export declare interface AccessLogFilter {
26
+ startDate?: Date | string;
27
+ endDate?: Date | string;
28
+ eventTypes?: AccessEventType[];
29
+ riskLevels?: RiskLevel[];
30
+ userId?: string;
31
+ ipAddress?: string;
32
+ country?: string;
33
+ searchQuery?: string;
34
+ successOnly?: boolean;
35
+ failedOnly?: boolean;
36
+ }
37
+
38
+ export declare interface AccessLogLabels {
39
+ title?: string;
40
+ filters?: string;
41
+ search?: string;
42
+ export?: string;
43
+ refresh?: string;
44
+ details?: string;
45
+ stats?: string;
46
+ map?: string;
47
+ timeline?: string;
48
+ showMore?: string;
49
+ noResults?: string;
50
+ eventTypes?: Record<AccessEventType, string>;
51
+ riskLevels?: Record<RiskLevel, string>;
52
+ deviceTypes?: Record<DeviceType, string>;
53
+ columns?: {
54
+ timestamp?: string;
55
+ user?: string;
56
+ event?: string;
57
+ ip?: string;
58
+ location?: string;
59
+ device?: string;
60
+ risk?: string;
61
+ status?: string;
62
+ };
63
+ }
64
+
65
+ export declare interface AccessLogStats {
66
+ totalEvents: number;
67
+ successfulLogins: number;
68
+ failedLogins: number;
69
+ uniqueIPs: number;
70
+ uniqueCountries: number;
71
+ highRiskEvents: number;
72
+ suspiciousActivities: number;
73
+ activeSessionCount?: number;
74
+ }
75
+
76
+ export declare type ApprovalStatus = 'draft' | 'pending_review' | 'approved' | 'rejected' | 'signed';
77
+
78
+ export declare interface ApprovalStep {
79
+ id: string;
80
+ name: string;
81
+ approvers: Approver[];
82
+ required: boolean;
83
+ order: number;
84
+ status: 'pending' | 'approved' | 'rejected';
85
+ completedAt?: Date;
86
+ completedBy?: string;
87
+ comments?: string;
88
+ }
89
+
90
+ export declare interface ApprovalWorkflow {
91
+ id: string;
92
+ currentStep: number;
93
+ steps: ApprovalStep[];
94
+ status: ApprovalStatus;
95
+ }
96
+
97
+ export declare interface Approver {
98
+ id: string;
99
+ name: string;
100
+ email: string;
101
+ role: string;
102
+ avatar?: string;
103
+ }
104
+
105
+ export declare type AuditAction = 'create' | 'update' | 'delete' | 'view' | 'export' | 'import' | 'approve' | 'reject' | 'login' | 'logout' | 'permission_change' | 'config_change' | 'custom';
106
+
107
+ export declare interface AuditChange {
108
+ field: string;
109
+ oldValue: unknown;
110
+ newValue: unknown;
111
+ displayOldValue?: string;
112
+ displayNewValue?: string;
113
+ }
114
+
115
+ export declare interface AuditDataSource {
116
+ fetchEntries(filter: AuditFilter, pagination: {
117
+ page: number;
118
+ pageSize: number;
119
+ }): Promise<{
120
+ entries: AuditEntry[];
121
+ totalCount: number;
122
+ }>;
123
+ getAvailableFilters?(): Promise<{
124
+ users: {
125
+ id: string;
126
+ name: string;
127
+ }[];
128
+ entityTypes: string[];
129
+ actions: AuditAction[];
130
+ }>;
131
+ }
132
+
133
+ export declare interface AuditEntry {
134
+ id: string;
135
+ timestamp: Date;
136
+ action: AuditAction;
137
+ actionLabel?: string;
138
+ severity?: AuditSeverity;
139
+ userId: string;
140
+ userName: string;
141
+ userEmail?: string;
142
+ userRole?: string;
143
+ userAvatar?: string;
144
+ ipAddress?: string;
145
+ userAgent?: string;
146
+ location?: string;
147
+ entityType: string;
148
+ entityId: string;
149
+ entityName?: string;
150
+ changes?: AuditChange[];
151
+ metadata?: Record<string, unknown>;
152
+ notes?: string;
153
+ /** For grouping related actions */
154
+ transactionId?: string;
155
+ }
156
+
157
+ export declare interface AuditFilter {
158
+ startDate?: Date;
159
+ endDate?: Date;
160
+ actions?: AuditAction[];
161
+ userIds?: string[];
162
+ entityTypes?: string[];
163
+ entityIds?: string[];
164
+ severity?: AuditSeverity[];
165
+ searchQuery?: string;
166
+ }
167
+
168
+ export declare type AuditSeverity = 'info' | 'warning' | 'critical';
169
+
170
+ export declare type ClauseCategory = 'general' | 'liability' | 'payment' | 'termination' | 'confidentiality' | 'compliance' | 'custom';
171
+
172
+ export declare interface ClauseVariable {
173
+ name: string;
174
+ placeholder: string;
175
+ type: 'text' | 'number' | 'date' | 'currency' | 'select';
176
+ required?: boolean;
177
+ defaultValue?: string;
178
+ options?: string[];
179
+ validation?: string;
180
+ }
181
+
182
+ export declare type ConsentAction = 'accept_all' | 'reject_all' | 'custom' | 'save_preferences';
183
+
184
+ export declare type ConsentCategory = 'necessary' | 'analytics' | 'marketing' | 'preferences' | 'social';
185
+
186
+ export declare interface ConsentLabels {
187
+ title: string;
188
+ description: string;
189
+ acceptAll: string;
190
+ rejectAll: string;
191
+ customize: string;
192
+ savePreferences: string;
193
+ necessary: string;
194
+ analytics: string;
195
+ marketing: string;
196
+ preferences: string;
197
+ social: string;
198
+ dataRights: string;
199
+ exportData: string;
200
+ deleteData: string;
201
+ pending: string;
202
+ processing: string;
203
+ completed: string;
204
+ close: string;
205
+ }
206
+
207
+ export declare interface ConsentOption {
208
+ id: ConsentCategory;
209
+ label: string;
210
+ description: string;
211
+ required?: boolean;
212
+ enabled: boolean;
213
+ cookies?: string[];
214
+ partners?: string[];
215
+ }
216
+
217
+ export declare interface ConsentState {
218
+ version: string;
219
+ timestamp: Date;
220
+ categories: Record<ConsentCategory, boolean>;
221
+ action: ConsentAction;
222
+ ipAddress?: string;
223
+ userAgent?: string;
224
+ }
225
+
226
+ export declare interface ContractClause {
227
+ id: string;
228
+ name: string;
229
+ content: string;
230
+ category: ClauseCategory;
231
+ description?: string;
232
+ variables?: ClauseVariable[];
233
+ isRequired?: boolean;
234
+ order?: number;
235
+ version?: string;
236
+ lastModified?: Date;
237
+ }
238
+
239
+ export declare interface ContractComment {
240
+ id: string;
241
+ clauseId: string;
242
+ userId: string;
243
+ userName: string;
244
+ userAvatar?: string;
245
+ content: string;
246
+ createdAt: Date;
247
+ resolved?: boolean;
248
+ replies?: ContractComment[];
249
+ }
250
+
251
+ export declare interface ContractDocument {
252
+ id: string;
253
+ title: string;
254
+ type: string;
255
+ sections: ContractSection[];
256
+ variables: Record<string, string>;
257
+ status: ApprovalStatus;
258
+ workflow?: ApprovalWorkflow;
259
+ versions: ContractVersion[];
260
+ comments: ContractComment[];
261
+ createdAt: Date;
262
+ updatedAt: Date;
263
+ createdBy: string;
264
+ }
265
+
266
+ export declare interface ContractSection {
267
+ id: string;
268
+ title: string;
269
+ clauses: ContractClause[];
270
+ collapsed?: boolean;
271
+ }
272
+
273
+ export declare interface ContractVersion {
274
+ id: string;
275
+ version: string;
276
+ createdAt: Date;
277
+ createdBy: string;
278
+ changes: string;
279
+ snapshot?: string;
280
+ }
281
+
282
+ export declare interface DataExportRequest {
283
+ id: string;
284
+ type: DataRequestType;
285
+ status: 'pending' | 'processing' | 'completed' | 'rejected';
286
+ requestedAt: Date;
287
+ completedAt?: Date;
288
+ downloadUrl?: string;
289
+ description: string;
290
+ }
291
+
292
+ export declare type DataRequestType = 'export' | 'delete' | 'rectify' | 'restrict';
293
+
294
+ export declare interface DataRetentionPolicy {
295
+ category: string;
296
+ description: string;
297
+ retentionDays: number;
298
+ legalBasis: string;
299
+ canDelete: boolean;
300
+ }
301
+
302
+ export declare interface DeviceInfo {
303
+ type: DeviceType;
304
+ os?: string;
305
+ osVersion?: string;
306
+ browser?: string;
307
+ browserVersion?: string;
308
+ fingerprint?: string;
309
+ isTrusted?: boolean;
310
+ }
311
+
312
+ export declare type DeviceType = 'desktop' | 'mobile' | 'tablet' | 'unknown';
313
+
314
+ export declare interface ExportDataSource<T = unknown> {
315
+ /** Fetch data to export */
316
+ fetchData(options: {
317
+ fields: ExportField[];
318
+ filters?: Record<string, unknown>;
319
+ sorting?: {
320
+ field: string;
321
+ direction: 'asc' | 'desc';
322
+ }[];
323
+ }): Promise<T[]>;
324
+ /** Get total count (for progress) */
325
+ getCount?(filters?: Record<string, unknown>): Promise<number>;
326
+ /** Get available fields */
327
+ getFields(): ExportField[];
328
+ }
329
+
330
+ export declare interface ExportField {
331
+ field: string;
332
+ label: string;
333
+ include: boolean;
334
+ format?: string;
335
+ transform?: (value: unknown) => unknown;
336
+ }
337
+
338
+ export declare type ExportFormat = 'csv' | 'xlsx' | 'json' | 'pdf' | 'xml';
339
+
340
+ export declare interface ExportJob {
341
+ id: string;
342
+ name: string;
343
+ templateId?: string;
344
+ format: ExportFormat;
345
+ status: 'pending' | 'processing' | 'completed' | 'failed';
346
+ progress: number;
347
+ createdAt: Date;
348
+ completedAt?: Date;
349
+ downloadUrl?: string;
350
+ error?: string;
351
+ rowCount?: number;
352
+ fileSize?: number;
353
+ }
354
+
355
+ export declare interface ExportOptions {
356
+ /** Include headers */
357
+ includeHeaders?: boolean;
358
+ /** Date format */
359
+ dateFormat?: string;
360
+ /** Number format */
361
+ numberFormat?: string;
362
+ /** Delimiter for CSV */
363
+ csvDelimiter?: string;
364
+ /** Encoding */
365
+ encoding?: 'utf-8' | 'utf-16' | 'iso-8859-1';
366
+ /** Compression */
367
+ compress?: boolean;
368
+ /** Password protection (XLSX, PDF) */
369
+ password?: string;
370
+ }
371
+
372
+ export declare interface ExportTemplate {
373
+ id: string;
374
+ name: string;
375
+ description?: string;
376
+ format: ExportFormat;
377
+ fields: ExportField[];
378
+ filters?: Record<string, unknown>;
379
+ sorting?: {
380
+ field: string;
381
+ direction: 'asc' | 'desc';
382
+ }[];
383
+ options?: ExportOptions;
384
+ }
385
+
386
+ export declare interface GeoLocation {
387
+ country: string;
388
+ countryCode?: string;
389
+ city?: string;
390
+ region?: string;
391
+ latitude?: number;
392
+ longitude?: number;
393
+ timezone?: string;
394
+ }
395
+
396
+ export declare interface InvoiceData {
397
+ invoiceNumber?: string;
398
+ date?: string;
399
+ dueDate?: string;
400
+ seller?: {
401
+ name: string;
402
+ address?: string;
403
+ taxId?: string;
404
+ email?: string;
405
+ phone?: string;
406
+ logo?: string;
407
+ };
408
+ buyer?: {
409
+ name: string;
410
+ address?: string;
411
+ taxId?: string;
412
+ email?: string;
413
+ };
414
+ items?: InvoiceLineItem[];
415
+ subtotal?: number;
416
+ taxAmount?: number;
417
+ discount?: number;
418
+ total?: number;
419
+ currency?: string;
420
+ notes?: string;
421
+ terms?: string;
422
+ bankDetails?: {
423
+ bankName?: string;
424
+ accountNumber?: string;
425
+ iban?: string;
426
+ swift?: string;
427
+ };
428
+ customFields?: Record<string, string | number>;
429
+ }
430
+
431
+ export declare interface InvoiceDesignerLabels {
432
+ title?: string;
433
+ templates?: string;
434
+ elements?: string;
435
+ properties?: string;
436
+ preview?: string;
437
+ export?: string;
438
+ save?: string;
439
+ addElement?: string;
440
+ deleteElement?: string;
441
+ duplicateElement?: string;
442
+ lockElement?: string;
443
+ unlockElement?: string;
444
+ undo?: string;
445
+ redo?: string;
446
+ zoom?: string;
447
+ grid?: string;
448
+ snap?: string;
449
+ noSelection?: string;
450
+ lineItems?: string;
451
+ addLineItem?: string;
452
+ removeLineItem?: string;
453
+ }
454
+
455
+ export declare interface InvoiceElement {
456
+ id: string;
457
+ type: InvoiceElementType;
458
+ x: number;
459
+ y: number;
460
+ width: number;
461
+ height: number;
462
+ content?: string;
463
+ field?: string;
464
+ style?: Record<string, string | number>;
465
+ locked?: boolean;
466
+ }
467
+
468
+ export declare type InvoiceElementType = 'text' | 'field' | 'image' | 'table' | 'divider' | 'qrcode' | 'barcode' | 'signature' | 'total' | 'subtotal' | 'tax' | 'shape';
469
+
470
+ export declare type InvoiceLineItem = {
471
+ id: string;
472
+ description: string;
473
+ quantity: number;
474
+ unitPrice: number;
475
+ discount?: number;
476
+ tax?: number;
477
+ total: number;
478
+ };
479
+
480
+ export declare interface InvoiceTemplate {
481
+ id: string;
482
+ name: string;
483
+ thumbnail?: string;
484
+ category: 'standard' | 'professional' | 'minimal' | 'modern' | 'custom';
485
+ elements: InvoiceElement[];
486
+ pageSize: 'a4' | 'letter' | 'legal';
487
+ orientation: 'portrait' | 'landscape';
488
+ margins: {
489
+ top: number;
490
+ right: number;
491
+ bottom: number;
492
+ left: number;
493
+ };
494
+ }
495
+
496
+ export declare const NiceAccessLog: default_2.ForwardRefExoticComponent<NiceAccessLogProps & default_2.RefAttributes<NiceAccessLogRef>>;
497
+
498
+ export declare interface NiceAccessLogProps extends NiceBaseProps {
499
+ /** Log entries data */
500
+ entries: AccessLogEntry[];
501
+ /** Initial filter */
502
+ filter?: AccessLogFilter;
503
+ /** Statistics */
504
+ stats?: AccessLogStats;
505
+ /** Enable real-time updates */
506
+ realtime?: boolean;
507
+ /** Polling interval in ms for real-time */
508
+ pollingInterval?: number;
509
+ /** Show geo map visualization */
510
+ showMap?: boolean;
511
+ /** Show statistics panel */
512
+ showStats?: boolean;
513
+ /** Enable entry detail view */
514
+ showDetails?: boolean;
515
+ /** Page size for pagination */
516
+ pageSize?: number;
517
+ /** Custom labels */
518
+ labels?: AccessLogLabels;
519
+ /** Loading state */
520
+ loading?: boolean;
521
+ /** Called when filter changes */
522
+ onFilterChange?: (filter: AccessLogFilter) => void;
523
+ /** Called when export requested */
524
+ onExport?: (format: 'csv' | 'json' | 'pdf') => void;
525
+ /** Called when entry selected */
526
+ onEntrySelect?: (entry: AccessLogEntry) => void;
527
+ /** Called when block IP requested */
528
+ onBlockIP?: (ip: string) => void;
529
+ /** Called when refresh requested */
530
+ onRefresh?: () => void;
531
+ }
532
+
533
+ export declare interface NiceAccessLogRef {
534
+ /** Get current filter */
535
+ getFilter: () => AccessLogFilter;
536
+ /** Apply filter */
537
+ applyFilter: (filter: AccessLogFilter) => void;
538
+ /** Clear all filters */
539
+ clearFilters: () => void;
540
+ /** Export data */
541
+ export: (format: 'csv' | 'json' | 'pdf') => void;
542
+ /** Refresh data */
543
+ refresh: () => void;
544
+ /** Get selected entry */
545
+ getSelectedEntry: () => AccessLogEntry | null;
546
+ /** Get container element */
547
+ getElement: () => HTMLDivElement | null;
548
+ }
549
+
550
+ export declare const NiceAuditTrail: default_2.ForwardRefExoticComponent<NiceAuditTrailProps & default_2.RefAttributes<NiceAuditTrailRef>>;
551
+
552
+ export declare interface NiceAuditTrailProps extends NiceBaseProps {
553
+ /** Data source */
554
+ dataSource: AuditDataSource;
555
+ /** Initial filter */
556
+ initialFilter?: AuditFilter;
557
+ /** Page size */
558
+ pageSize?: number;
559
+ /** View mode */
560
+ viewMode?: 'table' | 'timeline';
561
+ /** Enable export */
562
+ enableExport?: boolean;
563
+ /** Enable diff viewer */
564
+ showDiffs?: boolean;
565
+ /** Render custom action icon */
566
+ renderActionIcon?: (action: AuditAction) => ReactNode;
567
+ /** Render custom user */
568
+ renderUser?: (entry: AuditEntry) => ReactNode;
569
+ /** Called when entry is clicked */
570
+ onEntryClick?: (entry: AuditEntry) => void;
571
+ /** Called on export */
572
+ onExport?: (entries: AuditEntry[], format: 'csv' | 'json') => void;
573
+ /** Title */
574
+ title?: string;
575
+ }
576
+
577
+ export declare interface NiceAuditTrailRef {
578
+ refresh: () => Promise<void>;
579
+ setFilter: (filter: AuditFilter) => void;
580
+ getEntries: () => AuditEntry[];
581
+ }
582
+
583
+ export declare const NiceContractEditor: default_2.ForwardRefExoticComponent<NiceContractEditorProps & default_2.RefAttributes<NiceContractEditorRef>>;
584
+
585
+ export declare interface NiceContractEditorProps extends NiceBaseProps {
586
+ /** Document to edit */
587
+ document: ContractDocument;
588
+ /** Available clause library */
589
+ clauseLibrary?: ContractClause[];
590
+ /** Read-only mode */
591
+ readOnly?: boolean;
592
+ /** Show clause library panel */
593
+ showClauseLibrary?: boolean;
594
+ /** Show version history */
595
+ showVersionHistory?: boolean;
596
+ /** Show comments panel */
597
+ showComments?: boolean;
598
+ /** Show approval workflow */
599
+ showWorkflow?: boolean;
600
+ /** Current user (for comments) */
601
+ currentUser?: {
602
+ id: string;
603
+ name: string;
604
+ avatar?: string;
605
+ };
606
+ /** Called when document changes */
607
+ onChange?: (document: ContractDocument) => void;
608
+ /** Called when clause is added */
609
+ onAddClause?: (clause: ContractClause, sectionId: string) => void;
610
+ /** Called when clause is removed */
611
+ onRemoveClause?: (clauseId: string, sectionId: string) => void;
612
+ /** Called when variable changes */
613
+ onVariableChange?: (name: string, value: string) => void;
614
+ /** Called when comment is added */
615
+ onAddComment?: (comment: ContractComment) => void;
616
+ /** Called when approval action */
617
+ onApprovalAction?: (stepId: string, action: 'approve' | 'reject', comments?: string) => void;
618
+ /** Called on version restore */
619
+ onRestoreVersion?: (versionId: string) => void;
620
+ /** Called on save */
621
+ onSave?: (document: ContractDocument) => void;
622
+ /** Called on export */
623
+ onExport?: (format: 'pdf' | 'docx' | 'html') => void;
624
+ }
625
+
626
+ export declare interface NiceContractEditorRef {
627
+ getDocument: () => ContractDocument;
628
+ insertClause: (clause: ContractClause, sectionId: string) => void;
629
+ setVariable: (name: string, value: string) => void;
630
+ exportDocument: (format: 'pdf' | 'docx' | 'html') => void;
631
+ validate: () => {
632
+ valid: boolean;
633
+ errors: string[];
634
+ };
635
+ }
636
+
637
+ export declare const NiceDataExportCenter: default_2.ForwardRefExoticComponent<NiceDataExportCenterProps & default_2.RefAttributes<NiceDataExportCenterRef>>;
638
+
639
+ export declare interface NiceDataExportCenterProps extends NiceBaseProps {
640
+ /** Data source */
641
+ dataSource: ExportDataSource;
642
+ /** Available export formats */
643
+ formats?: ExportFormat[];
644
+ /** Saved templates */
645
+ templates?: ExportTemplate[];
646
+ /** Enable scheduling */
647
+ enableScheduling?: boolean;
648
+ /** Export history */
649
+ exportHistory?: ExportJob[];
650
+ /** Called when export starts */
651
+ onExportStart?: (job: ExportJob) => void;
652
+ /** Called when export completes */
653
+ onExportComplete?: (job: ExportJob) => void;
654
+ /** Called when export fails */
655
+ onExportError?: (job: ExportJob, error: Error) => void;
656
+ /** Called to save template */
657
+ onSaveTemplate?: (template: ExportTemplate) => void;
658
+ /** Called to delete template */
659
+ onDeleteTemplate?: (templateId: string) => void;
660
+ /** Called to schedule export */
661
+ onSchedule?: (schedule: ScheduleConfig, template: ExportTemplate) => void;
662
+ /** Custom export handler (if you want to handle export server-side) */
663
+ customExportHandler?: (format: ExportFormat, data: unknown[], options: ExportOptions) => Promise<Blob | string>;
664
+ /** Title */
665
+ title?: string;
666
+ /** Description */
667
+ description?: string;
668
+ }
669
+
670
+ export declare interface NiceDataExportCenterRef {
671
+ exportNow: (format: ExportFormat) => Promise<void>;
672
+ getSelectedFields: () => ExportField[];
673
+ loadTemplate: (templateId: string) => void;
674
+ }
675
+
676
+ export declare const NiceGDPRConsent: default_2.ForwardRefExoticComponent<NiceGDPRConsentProps & default_2.RefAttributes<NiceGDPRConsentRef>>;
677
+
678
+ export declare interface NiceGDPRConsentProps extends NiceBaseProps {
679
+ /** Application name */
680
+ appName: string;
681
+ /** Company name */
682
+ companyName: string;
683
+ /** Consent options */
684
+ options?: ConsentOption[];
685
+ /** Current consent state */
686
+ currentConsent?: ConsentState | null;
687
+ /** Data retention policies */
688
+ retentionPolicies?: DataRetentionPolicy[];
689
+ /** Previous data requests */
690
+ dataRequests?: DataExportRequest[];
691
+ /** Privacy policy sections */
692
+ privacyPolicy?: PrivacyPolicySection[];
693
+ /** Storage key for consent */
694
+ storageKey?: string;
695
+ /** Consent version (for re-prompting) */
696
+ consentVersion?: string;
697
+ /** Show as banner or modal */
698
+ variant?: 'banner' | 'modal' | 'embedded';
699
+ /** Banner position */
700
+ position?: 'top' | 'bottom';
701
+ /** Called when consent changes */
702
+ onConsentChange?: (consent: ConsentState) => void;
703
+ /** Called on data request */
704
+ onDataRequest?: (type: DataRequestType, reason?: string) => Promise<DataExportRequest>;
705
+ /** Called to download export */
706
+ onDownloadExport?: (requestId: string) => void;
707
+ /** Privacy policy URL */
708
+ privacyPolicyUrl?: string;
709
+ /** Cookie policy URL */
710
+ cookiePolicyUrl?: string;
711
+ /** Terms URL */
712
+ termsUrl?: string;
713
+ /** Labels (i18n) */
714
+ labels?: Partial<ConsentLabels>;
715
+ }
716
+
717
+ export declare interface NiceGDPRConsentRef {
718
+ showBanner: () => void;
719
+ hideBanner: () => void;
720
+ getConsent: () => ConsentState | null;
721
+ revokeConsent: () => void;
722
+ openPreferences: () => void;
723
+ }
724
+
725
+ export declare const NiceGlobalSearch: default_2.ForwardRefExoticComponent<NiceGlobalSearchProps & default_2.RefAttributes<NiceGlobalSearchRef>>;
726
+
727
+ export declare interface NiceGlobalSearchProps extends NiceBaseProps {
728
+ /** Search sources */
729
+ sources: SearchSource[];
730
+ /** Placeholder text */
731
+ placeholder?: string;
732
+ /** Minimum characters before search */
733
+ minQueryLength?: number;
734
+ /** Debounce delay in ms */
735
+ debounceMs?: number;
736
+ /** Show categories */
737
+ showCategories?: boolean;
738
+ /** Available filters */
739
+ filters?: SearchFilter[];
740
+ /** Show recent searches */
741
+ showRecent?: boolean;
742
+ /** Maximum recent searches */
743
+ maxRecent?: number;
744
+ /** Show keyboard shortcuts */
745
+ showShortcuts?: boolean;
746
+ /** Hotkey to open (e.g., 'k' for Cmd+K) */
747
+ hotkey?: string;
748
+ /** Called when result is selected */
749
+ onResultSelect?: (result: SearchResult) => void;
750
+ /** Called when search is performed */
751
+ onSearch?: (query: string, results: SearchResult[]) => void;
752
+ /** Called when closed */
753
+ onClose?: () => void;
754
+ /** Render custom result */
755
+ renderResult?: (result: SearchResult, isSelected: boolean) => ReactNode;
756
+ /** Render custom empty state */
757
+ renderEmpty?: (query: string) => ReactNode;
758
+ /** Initial open state */
759
+ defaultOpen?: boolean;
760
+ /** Controlled open state */
761
+ open?: boolean;
762
+ /** Variant */
763
+ variant?: 'modal' | 'inline' | 'dropdown';
764
+ /** Labels */
765
+ labels?: Partial<SearchLabels>;
766
+ }
767
+
768
+ export declare interface NiceGlobalSearchRef {
769
+ open: () => void;
770
+ close: () => void;
771
+ focus: () => void;
772
+ clear: () => void;
773
+ search: (query: string) => Promise<void>;
774
+ }
775
+
776
+ export declare const NiceInvoiceDesigner: default_2.ForwardRefExoticComponent<NiceInvoiceDesignerProps & default_2.RefAttributes<NiceInvoiceDesignerRef>>;
777
+
778
+ export declare interface NiceInvoiceDesignerProps extends NiceBaseProps {
779
+ /** Initial template */
780
+ template?: InvoiceTemplate;
781
+ /** Invoice data for preview */
782
+ data?: InvoiceData;
783
+ /** Available templates library */
784
+ templates?: InvoiceTemplate[];
785
+ /** Available data fields for binding */
786
+ dataFields?: {
787
+ key: string;
788
+ label: string;
789
+ type: 'text' | 'number' | 'date' | 'currency';
790
+ }[];
791
+ /** Enable grid */
792
+ showGrid?: boolean;
793
+ /** Grid size in pixels */
794
+ gridSize?: number;
795
+ /** Enable snap to grid */
796
+ snapToGrid?: boolean;
797
+ /** Enable rulers */
798
+ showRulers?: boolean;
799
+ /** Read-only mode */
800
+ readOnly?: boolean;
801
+ /** Custom labels */
802
+ labels?: InvoiceDesignerLabels;
803
+ /** Called when template changes */
804
+ onChange?: (template: InvoiceTemplate) => void;
805
+ /** Called when export is requested */
806
+ onExport?: (format: 'pdf' | 'png' | 'print') => void;
807
+ /** Called when template is saved */
808
+ onSave?: (template: InvoiceTemplate) => void;
809
+ }
810
+
811
+ export declare interface NiceInvoiceDesignerRef {
812
+ /** Get current template */
813
+ getTemplate: () => InvoiceTemplate;
814
+ /** Set template */
815
+ setTemplate: (template: InvoiceTemplate) => void;
816
+ /** Export invoice */
817
+ export: (format: 'pdf' | 'png' | 'print') => void;
818
+ /** Add element */
819
+ addElement: (type: InvoiceElementType) => void;
820
+ /** Remove selected element */
821
+ removeSelected: () => void;
822
+ /** Undo last action */
823
+ undo: () => void;
824
+ /** Redo last undone action */
825
+ redo: () => void;
826
+ /** Get container element */
827
+ getElement: () => HTMLDivElement | null;
828
+ }
829
+
830
+ export declare interface PrivacyPolicySection {
831
+ id: string;
832
+ title: string;
833
+ content: string;
834
+ lastUpdated?: Date;
835
+ }
836
+
837
+ export declare interface RecentSearch {
838
+ query: string;
839
+ timestamp: Date;
840
+ resultCount?: number;
841
+ }
842
+
843
+ export declare type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
844
+
845
+ export declare interface ScheduleConfig {
846
+ enabled: boolean;
847
+ frequency: 'daily' | 'weekly' | 'monthly' | 'custom';
848
+ time: string;
849
+ daysOfWeek?: number[];
850
+ dayOfMonth?: number;
851
+ cronExpression?: string;
852
+ deliveryMethod: 'download' | 'email' | 'sftp' | 'api';
853
+ recipients?: string[];
854
+ sftpConfig?: {
855
+ host: string;
856
+ path: string;
857
+ username: string;
858
+ };
859
+ apiEndpoint?: string;
860
+ }
861
+
862
+ export declare interface SearchAction {
863
+ id: string;
864
+ label: string;
865
+ icon?: ReactNode;
866
+ shortcut?: string;
867
+ onClick: () => void;
868
+ }
869
+
870
+ export declare interface SearchCategory {
871
+ id: string;
872
+ label: string;
873
+ icon?: ReactNode;
874
+ count?: number;
875
+ }
876
+
877
+ export declare interface SearchFilter {
878
+ field: string;
879
+ label: string;
880
+ type: 'select' | 'multi-select' | 'date' | 'range';
881
+ options?: {
882
+ value: string;
883
+ label: string;
884
+ }[];
885
+ value?: unknown;
886
+ }
887
+
888
+ export declare interface SearchLabels {
889
+ placeholder: string;
890
+ recent: string;
891
+ noResults: string;
892
+ searching: string;
893
+ clearRecent: string;
894
+ categories: string;
895
+ filters: string;
896
+ }
897
+
898
+ export declare interface SearchResult {
899
+ id: string;
900
+ type: SearchResultType;
901
+ title: string;
902
+ subtitle?: string;
903
+ description?: string;
904
+ icon?: ReactNode;
905
+ image?: string;
906
+ url?: string;
907
+ relevanceScore: number;
908
+ source: string;
909
+ metadata?: Record<string, unknown>;
910
+ actions?: SearchAction[];
911
+ highlights?: {
912
+ field: string;
913
+ matches: string[];
914
+ }[];
915
+ }
916
+
917
+ export declare type SearchResultType = 'document' | 'user' | 'task' | 'project' | 'setting' | 'help' | 'action' | 'custom';
918
+
919
+ export declare interface SearchSource {
920
+ id: string;
921
+ name: string;
922
+ icon?: ReactNode;
923
+ search: (query: string, filters?: Record<string, unknown>) => Promise<SearchResult[]>;
924
+ priority?: number;
925
+ }
926
+
927
+ export { }