@progress/kendo-react-data-tools 11.0.0-develop.2 → 11.0.0-develop.20

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.
package/index.d.ts CHANGED
@@ -16,6 +16,7 @@ import { GroupDescriptor } from '@progress/kendo-data-query';
16
16
  import { JSX } from 'react/jsx-runtime';
17
17
  import * as React_2 from 'react';
18
18
  import { SortDescriptor } from '@progress/kendo-data-query';
19
+ import { State } from '@progress/kendo-data-query';
19
20
  import { SVGIcon } from '@progress/kendo-react-common';
20
21
 
21
22
  /**
@@ -726,6 +727,181 @@ declare interface DataItemWrapper {
726
727
  levelCount: number;
727
728
  }
728
729
 
730
+ /**
731
+ * Represents a data source with data presentation operations (filtering, sorting, paging, grouping).
732
+ *
733
+ * @template T - The type of data items in the data source. Defaults to any.
734
+ */
735
+ export declare type DataSource<T extends object = any> = {
736
+ /** The array of data items. */
737
+ data: T[];
738
+ /**
739
+ * Sets the data items in the data source.
740
+ *
741
+ * @param value - The array of new data items.
742
+ */
743
+ setData: (value: T[]) => void;
744
+ /** The total number of data items. */
745
+ total: number;
746
+ /** The schema used for data validation and transformation. */
747
+ schema: DataSourceProps<T>['schema'];
748
+ /** The current sort descriptors applied to the data. */
749
+ sort: SortDescriptor[] | undefined;
750
+ /**
751
+ * Sets the sort descriptors for the data.
752
+ *
753
+ * @param value - The new sort descriptors.
754
+ */
755
+ setSort: (value: SortDescriptor[] | undefined) => void;
756
+ /** The current filter descriptor applied to the data. */
757
+ filter: CompositeFilterDescriptor | undefined;
758
+ /**
759
+ * Sets the filter descriptor for the data.
760
+ *
761
+ * @param value - The new filter descriptor.
762
+ */
763
+ setFilter: (value: CompositeFilterDescriptor | undefined) => void;
764
+ /** The current skip value for pagination. */
765
+ skip: number | undefined;
766
+ /**
767
+ * Sets the skip value for pagination.
768
+ *
769
+ * @param value - The new skip value.
770
+ */
771
+ setSkip: (value: number | undefined) => void;
772
+ /** The current take value for pagination. */
773
+ take: number | undefined;
774
+ /**
775
+ * Sets the take value for pagination.
776
+ *
777
+ * @param value - The new take value.
778
+ */
779
+ setTake: (value: number | undefined) => void;
780
+ /** The current group descriptors applied to the data. */
781
+ group: GroupDescriptor[] | undefined;
782
+ /**
783
+ * Sets the group descriptors for the data.
784
+ *
785
+ * @param value - The new group descriptors.
786
+ */
787
+ setGroup: (value: GroupDescriptor[] | undefined) => void;
788
+ /** The current data state, including sorting, filtering, and pagination. */
789
+ dataState: Partial<DataSourceProps<T>>;
790
+ /**
791
+ * Sets the data state, including sorting, filtering, and pagination.
792
+ *
793
+ * @param dataState - The new data state.
794
+ */
795
+ setDataState: (dataState: Partial<DataSourceProps<T>>) => void;
796
+ /**
797
+ * Sets the total number of data items.
798
+ *
799
+ * @param value - The new total value.
800
+ */
801
+ setTotal: (value: number | undefined) => void;
802
+ };
803
+
804
+ /**
805
+ * Describes the options for configuring the useDataSource hook.
806
+ *
807
+ * @template T - The type of data items in the data source. Defaults to any.
808
+ */
809
+ export declare type DataSourceProps<T extends object = any> = {
810
+ /**
811
+ * The total number of records in the data source.
812
+ */
813
+ total?: number;
814
+ /**
815
+ * The initial total number of records in the data source.
816
+ */
817
+ defaultTotal?: number;
818
+ /**
819
+ * The current data array to be managed by the hook.
820
+ * This represents the data items that are currently available in the data source.
821
+ * If not provided, the `defaultData` will be used as the initial value.
822
+ */
823
+ data?: T[];
824
+ /**
825
+ * The initial data array to be managed by the hook.
826
+ */
827
+ defaultData?: T[];
828
+ /**
829
+ * The current sorting configuration.
830
+ */
831
+ sort?: SortDescriptor[];
832
+ /**
833
+ * The initial sorting configuration.
834
+ */
835
+ defaultSort?: SortDescriptor[];
836
+ /**
837
+ * The current filter configuration.
838
+ */
839
+ filter?: CompositeFilterDescriptor;
840
+ /**
841
+ * The initial filter configuration.
842
+ */
843
+ defaultFilter?: CompositeFilterDescriptor;
844
+ /**
845
+ * The current number of records to skip (for paging).
846
+ */
847
+ skip?: number;
848
+ /**
849
+ * The initial number of records to skip (for paging).
850
+ */
851
+ defaultSkip?: number;
852
+ /**
853
+ * The current number of records to take per page.
854
+ */
855
+ take?: number;
856
+ /**
857
+ * The initial number of records to take per page.
858
+ */
859
+ defaultTake?: number;
860
+ /**
861
+ * The current grouping configuration.
862
+ */
863
+ group?: GroupDescriptor[];
864
+ /**
865
+ * The initial grouping configuration.
866
+ */
867
+ defaultGroup?: GroupDescriptor[];
868
+ /**
869
+ * Specifies whether filtering is enabled.
870
+ *
871
+ * @default true
872
+ */
873
+ filterable?: boolean;
874
+ /**
875
+ * Specifies whether sorting is enabled.
876
+ *
877
+ * @default true
878
+ */
879
+ sortable?: boolean;
880
+ /**
881
+ * Specifies whether paging is enabled.
882
+ *
883
+ * @default true
884
+ */
885
+ pageable?: boolean;
886
+ /**
887
+ * Specifies whether grouping is enabled.
888
+ *
889
+ * @default true
890
+ */
891
+ groupable?: boolean;
892
+ /**
893
+ * Configuration for the data schema, including model definition.
894
+ */
895
+ schema: {
896
+ model: {
897
+ /**
898
+ * The field that serves as the unique identifier for records.
899
+ */
900
+ id: string;
901
+ };
902
+ };
903
+ };
904
+
729
905
  /**
730
906
  * The DateFilter component used for editing date value of FilterDescriptor object.
731
907
  */
@@ -1994,7 +2170,10 @@ export declare interface PagerProps {
1994
2170
  */
1995
2171
  previousNext?: boolean;
1996
2172
  /**
1997
- * Defines if the pager will be responsive. Defaults to `true`.
2173
+ * Defines if the pager will be responsive.
2174
+ * If true, hides the tools that do not fit to the available space.
2175
+ *
2176
+ * @default `true`
1998
2177
  */
1999
2178
  responsive?: boolean;
2000
2179
  /**
@@ -2033,6 +2212,14 @@ export declare interface PagerProps {
2033
2212
  * Controls the disabled state of the Pager. Defaults to `false`.
2034
2213
  */
2035
2214
  disabled?: boolean;
2215
+ /**
2216
+ * Providing different rendering of the page sizes select element based on the screen dimensions.
2217
+ */
2218
+ adaptive?: boolean;
2219
+ /**
2220
+ * Specifies the text that is rendered as title in the adaptive page sizes select element.
2221
+ */
2222
+ adaptiveTitle?: string;
2036
2223
  }
2037
2224
 
2038
2225
  /**
@@ -2061,9 +2248,7 @@ export declare interface PopulateClipboardArgs {
2061
2248
  /**
2062
2249
  * Represents the current selected state of the data.
2063
2250
  */
2064
- selectedState: {
2065
- [key: string | number]: boolean | number[];
2066
- };
2251
+ selectedState: SelectDescriptor;
2067
2252
  /**
2068
2253
  * Passes the data currently displayed.
2069
2254
  */
@@ -2098,6 +2283,401 @@ export declare function readColumns<C = CellProps, H = HeaderCellProps, F = Filt
2098
2283
  /** @hidden */
2099
2284
  export declare const relativeContextElement: (element: any) => any;
2100
2285
 
2286
+ /**
2287
+ * Represents a remote data source with CRUD operations (Create, Read, Update, Delete).
2288
+ *
2289
+ * @template T - The type of data items in the data source. Defaults to any.
2290
+ */
2291
+ export declare type RemoteDataSource<T extends object = any> = DataSource<T> & {
2292
+ /** Set of original data items read from the remote source, indexed by ID */
2293
+ reads: Map<string | number | symbol | null, T>;
2294
+ /** Map of created items that need to be synced */
2295
+ creates: Map<string | number | symbol | null, T>;
2296
+ /** Map of updated items that need to be synced */
2297
+ updates: Map<string | number | symbol | null, T>;
2298
+ /** Map of items marked for deletion that need to be synced */
2299
+ deletes: Map<string | number | symbol | null, T>;
2300
+ /** Map of dirty fields for each item */
2301
+ dirty: Map<string | number | symbol | null, Set<string>>;
2302
+ /** Map of errors for each item */
2303
+ errors: Map<string | number | symbol | null, any[]>;
2304
+ /** Adds an error to an item */
2305
+ addError: (params: {
2306
+ error: any;
2307
+ data?: T;
2308
+ }) => void;
2309
+ /** Removes an error from an item */
2310
+ removeError: (params: {
2311
+ error: any;
2312
+ }) => void;
2313
+ /** Removes all errors for an item */
2314
+ removeErrors: (params: {
2315
+ data: T;
2316
+ }) => void;
2317
+ /** Removes all errors */
2318
+ removeAllErrors: () => void;
2319
+ /** Reads data from the remote source */
2320
+ read: (state?: State) => Promise<T[]>;
2321
+ /** Creates a new item */
2322
+ create: (params: {
2323
+ data: T;
2324
+ }) => void;
2325
+ /** Updates an existing item */
2326
+ update: (params: {
2327
+ data: T;
2328
+ field?: string;
2329
+ }) => void;
2330
+ /** Deletes an item */
2331
+ delete: (params: {
2332
+ data: T;
2333
+ }) => void;
2334
+ /** Syncs all pending changes with the remote source */
2335
+ sync: () => Promise<void>;
2336
+ /** Syncs a single item with the remote source */
2337
+ syncItem: (params: {
2338
+ data: T;
2339
+ }) => Promise<void>;
2340
+ /** Removes an item from creates */
2341
+ removeCreate: (params: {
2342
+ data: T;
2343
+ }) => void;
2344
+ /** Removes an item from updates */
2345
+ removeUpdate: (params: {
2346
+ data: T;
2347
+ }) => void;
2348
+ /** Removes an item from deletes */
2349
+ removeDelete: (params: {
2350
+ data: T;
2351
+ }) => void;
2352
+ /** Adds an item to reads */
2353
+ pushCreate: (params: {
2354
+ data: T;
2355
+ }) => void;
2356
+ /** Updates an item in reads */
2357
+ pushUpdate: (params: {
2358
+ data: T;
2359
+ }) => void;
2360
+ /** Removes an item from reads */
2361
+ pushDelete: (params: {
2362
+ data: T;
2363
+ }) => void;
2364
+ /** Discards all pending changes */
2365
+ discard: () => void;
2366
+ };
2367
+
2368
+ /**
2369
+ * Configuration properties for the remote data source.
2370
+ * Extends the basic DataSourceProps with remote data operations capabilities.
2371
+ *
2372
+ * @template T - The type of data items in the data source. Defaults to any object.
2373
+ */
2374
+ export declare interface RemoteDataSourceProps<T extends object = any> extends DataSourceProps<T> {
2375
+ /**
2376
+ * Map of original data items read from the remote source, indexed by ID.
2377
+ */
2378
+ reads?: Map<string | number | symbol | null, T>;
2379
+ /**
2380
+ * Map of created items that need to be synced with the remote source.
2381
+ */
2382
+ creates?: Map<string | number | symbol | null, T>;
2383
+ /**
2384
+ * Map of updated items that need to be synced with the remote source.
2385
+ */
2386
+ updates?: Map<string | number | symbol | null, T>;
2387
+ /**
2388
+ * Map of items marked for deletion that need to be synced with the remote source.
2389
+ */
2390
+ deletes?: Map<string | number | symbol | null, T>;
2391
+ /**
2392
+ * Determines if filtering operations should be performed on the server.
2393
+ * When true, filter parameters are sent to the server during read operations.
2394
+ *
2395
+ * @default true
2396
+ */
2397
+ serverFiltering?: boolean;
2398
+ /**
2399
+ * Determines if sorting operations should be performed on the server.
2400
+ * When true, sort parameters are sent to the server during read operations.
2401
+ *
2402
+ * @default true
2403
+ */
2404
+ serverSorting?: boolean;
2405
+ /**
2406
+ * Determines if paging operations should be performed on the server.
2407
+ * When true, skip and take parameters are sent to the server during read operations.
2408
+ *
2409
+ * @default true
2410
+ */
2411
+ serverPaging?: boolean;
2412
+ /**
2413
+ * Determines if grouping operations should be performed on the server.
2414
+ * When true, group parameters are sent to the server during read operations.
2415
+ *
2416
+ * @default true
2417
+ */
2418
+ serverGrouping?: boolean;
2419
+ /**
2420
+ * Configuration for CRUD operations transport.
2421
+ * Defines how data is sent to and received from the server.
2422
+ */
2423
+ transport?: {
2424
+ /**
2425
+ * Configuration for create operations.
2426
+ * Can be either an object specifying the endpoint configuration or a function for custom implementation.
2427
+ */
2428
+ create?: {
2429
+ /**
2430
+ * URL for the create operation. Can be a string or a function that returns a string based on the data item.
2431
+ */
2432
+ url: string | ((dataItem: T) => string);
2433
+ /**
2434
+ * HTTP method to use for the create operation.
2435
+ *
2436
+ * @default "POST"
2437
+ */
2438
+ method?: string;
2439
+ /**
2440
+ * Content-Type header to use for the request.
2441
+ *
2442
+ * @default "application/json"
2443
+ */
2444
+ contentType?: string;
2445
+ /**
2446
+ * Additional data to include in the request.
2447
+ */
2448
+ data?: {
2449
+ [key: string]: any;
2450
+ };
2451
+ /**
2452
+ * Function that transforms the request data before sending it to the server.
2453
+ *
2454
+ * @param data - The data item to transform
2455
+ * @returns Transformed data
2456
+ */
2457
+ parameterMap?: (data: T) => any;
2458
+ /**
2459
+ * Callback executed when the create operation is successful.
2460
+ *
2461
+ * @param data - The created data item
2462
+ */
2463
+ onSuccess?: (data: T) => void;
2464
+ /**
2465
+ * Function to process the server response.
2466
+ *
2467
+ * @param response - The server response
2468
+ * @returns Processed data item or null
2469
+ */
2470
+ onResponse?: (response: any) => T | null;
2471
+ /**
2472
+ * Callback executed when the create operation fails.
2473
+ *
2474
+ * @param error - The error from the server
2475
+ */
2476
+ onError?: (error: any) => void;
2477
+ } | ((options: {
2478
+ data: T;
2479
+ }) => Promise<T>);
2480
+ /**
2481
+ * Configuration for read operations.
2482
+ * Can be either an object specifying the endpoint configuration or a function for custom implementation.
2483
+ */
2484
+ read?: {
2485
+ /**
2486
+ * URL for the read operation. Can be a string or a function that returns a string.
2487
+ */
2488
+ url: string | (() => string);
2489
+ /**
2490
+ * HTTP method to use for the read operation.
2491
+ *
2492
+ * @default "GET"
2493
+ */
2494
+ method?: string;
2495
+ /**
2496
+ * Content-Type header to use for the request.
2497
+ */
2498
+ contentType?: string;
2499
+ /**
2500
+ * Additional data to include in the request.
2501
+ */
2502
+ data?: {
2503
+ [key: string]: any;
2504
+ };
2505
+ /**
2506
+ * Function that transforms the request data before sending it to the server.
2507
+ *
2508
+ * @param data - The request parameters including filter, paging, sorting, and grouping info
2509
+ * @returns Transformed request parameters
2510
+ */
2511
+ parameterMap?: (data: {
2512
+ filter?: CompositeFilterDescriptor;
2513
+ skip?: number;
2514
+ take?: number;
2515
+ sort?: SortDescriptor[];
2516
+ group?: GroupDescriptor[];
2517
+ }) => any;
2518
+ /**
2519
+ * Callback executed when the read operation is successful.
2520
+ *
2521
+ * @param data - The retrieved data items
2522
+ */
2523
+ onSuccess?: (data: T[]) => void;
2524
+ /**
2525
+ * Function to process the server response.
2526
+ *
2527
+ * @param response - The server response
2528
+ * @returns Processed data item or null
2529
+ */
2530
+ onResponse?: (response: any) => T | null;
2531
+ /**
2532
+ * Callback executed when the read operation fails.
2533
+ *
2534
+ * @param error - The error from the server
2535
+ */
2536
+ onError?: (error: any) => void;
2537
+ } | ((options: {
2538
+ filter?: CompositeFilterDescriptor;
2539
+ skip?: number;
2540
+ take?: number;
2541
+ sort?: SortDescriptor[];
2542
+ group?: GroupDescriptor[];
2543
+ onSuccess?: (data: T[]) => void;
2544
+ onResponse?: (response: any) => T | null;
2545
+ onError?: (error: any) => void;
2546
+ }) => Promise<T[]>);
2547
+ /**
2548
+ * Configuration for update operations.
2549
+ * Can be either an object specifying the endpoint configuration or a function for custom implementation.
2550
+ */
2551
+ update?: {
2552
+ /**
2553
+ * URL for the update operation. Can be a string or a function that returns a string based on the data item.
2554
+ */
2555
+ url: string | ((dataItem: T) => string);
2556
+ /**
2557
+ * HTTP method to use for the update operation.
2558
+ *
2559
+ * @default "PUT"
2560
+ */
2561
+ method?: string;
2562
+ /**
2563
+ * Content-Type header to use for the request.
2564
+ *
2565
+ * @default "application/json"
2566
+ */
2567
+ contentType?: string;
2568
+ /**
2569
+ * Additional data to include in the request.
2570
+ */
2571
+ data?: {
2572
+ [key: string]: any;
2573
+ };
2574
+ /**
2575
+ * Function that transforms the request data before sending it to the server.
2576
+ *
2577
+ * @param data - The data item to transform
2578
+ * @returns Transformed data
2579
+ */
2580
+ parameterMap?: (data: T) => any;
2581
+ /**
2582
+ * Callback executed when the update operation is successful.
2583
+ *
2584
+ * @param data - The updated data item
2585
+ */
2586
+ onSuccess?: (data: T) => void;
2587
+ /**
2588
+ * Function to process the server response.
2589
+ *
2590
+ * @param response - The server response
2591
+ * @returns Processed data item or null
2592
+ */
2593
+ onResponse?: (response: any) => T | null;
2594
+ /**
2595
+ * Callback executed when the update operation fails.
2596
+ *
2597
+ * @param error - The error from the server
2598
+ */
2599
+ onError?: (error: any) => void;
2600
+ } | ((options: {
2601
+ data: T;
2602
+ }) => Promise<T>);
2603
+ /**
2604
+ * Configuration for delete operations.
2605
+ * Can be either an object specifying the endpoint configuration or a function for custom implementation.
2606
+ */
2607
+ delete?: {
2608
+ /**
2609
+ * URL for the delete operation. Can be a string or a function that returns a string based on the data item.
2610
+ */
2611
+ url: string | ((dataItem: T) => string);
2612
+ /**
2613
+ * HTTP method to use for the delete operation.
2614
+ *
2615
+ * @default "DELETE"
2616
+ */
2617
+ method?: string;
2618
+ /**
2619
+ * Content-Type header to use for the request.
2620
+ */
2621
+ contentType?: string;
2622
+ /**
2623
+ * Additional data to include in the request.
2624
+ */
2625
+ data?: {
2626
+ [key: string]: any;
2627
+ };
2628
+ /**
2629
+ * Function that transforms the request data before sending it to the server.
2630
+ *
2631
+ * @param data - The data item to transform
2632
+ * @returns Transformed data
2633
+ */
2634
+ parameterMap?: (data: T) => any;
2635
+ /**
2636
+ * Callback executed when the delete operation is successful.
2637
+ *
2638
+ * @param data - The deleted data item
2639
+ */
2640
+ onSuccess?: (data: T) => void;
2641
+ /**
2642
+ * Function to process the server response.
2643
+ *
2644
+ * @param response - The server response
2645
+ * @returns Processed data item or null
2646
+ */
2647
+ onResponse?: (response: any) => T | null;
2648
+ /**
2649
+ * Callback executed when the delete operation fails.
2650
+ *
2651
+ * @param error - The error from the server
2652
+ */
2653
+ onError?: (error: any) => void;
2654
+ } | ((options: {
2655
+ data: T;
2656
+ }) => Promise<T>);
2657
+ };
2658
+ /**
2659
+ * Schema configuration for parsing and mapping server responses.
2660
+ * Extends the base DataSourceProps schema with additional properties for remote data.
2661
+ */
2662
+ schema: DataSourceProps['schema'] & {
2663
+ /**
2664
+ * Specifies the field in the response that contains the data items,
2665
+ * or a function that extracts the data items from the response.
2666
+ */
2667
+ data?: string | ((data: any) => T[]);
2668
+ /**
2669
+ * Specifies the field in the response that contains the total count,
2670
+ * or a function that extracts the total count from the response.
2671
+ */
2672
+ total?: string | ((data: any) => number);
2673
+ /**
2674
+ * Specifies the field in the response that contains error information,
2675
+ * or a function that extracts error information from the response.
2676
+ */
2677
+ errors?: string | ((data: any) => any);
2678
+ };
2679
+ }
2680
+
2101
2681
  /**
2102
2682
  * Removes the items from the passed `data` which match the passed `condition`.
2103
2683
  *
@@ -2747,6 +3327,94 @@ export declare function updateRight(columnsMap: number[][], columns: Array<{
2747
3327
  ariaColumnIndex: number;
2748
3328
  }>, generateRight?: boolean): void;
2749
3329
 
3330
+ /**
3331
+ * A hook that provides functionality for managing local data with built-in support for filtering, sorting, paging, and grouping.
3332
+ *
3333
+ * @template T - The type of data items in the data source. Defaults to any.
3334
+ * @param {DataSourceProps<T>} props - The configuration options for the data source.
3335
+ * @returns {DataSource<T>} An object containing data management methods and properties.
3336
+ *
3337
+ * @example
3338
+ * ```tsx
3339
+ * interface Product {
3340
+ * ProductID: number;
3341
+ * ProductName: string;
3342
+ * UnitPrice: number;
3343
+ * }
3344
+ *
3345
+ * const dataSource = useDataSource<Product>({
3346
+ * defaultData: products,
3347
+ * defaultSort: [{ field: 'UnitPrice', dir: 'desc' }],
3348
+ * defaultSkip: 0,
3349
+ * take: 10,
3350
+ * schema: {
3351
+ * model: {
3352
+ * id: 'ProductID'
3353
+ * }
3354
+ * }
3355
+ * });
3356
+ *
3357
+ * return (
3358
+ * <Grid
3359
+ * data={dataSource.data}
3360
+ * total={dataSource.total}
3361
+ * {...dataSource.dataState}
3362
+ * onDataStateChange={(event) => {
3363
+ * dataSource.setDataState(event.dataState);
3364
+ * }}
3365
+ * >
3366
+ * <GridColumn field="ProductID" title="ID" />
3367
+ * <GridColumn field="ProductName" title="Product Name" />
3368
+ * </Grid>
3369
+ * );
3370
+ * ```
3371
+ */
3372
+ export declare const useDataSource: <T extends object = any>(props: DataSourceProps<T>) => DataSource<T>;
3373
+
3374
+ /**
3375
+ * A specialized version of useRemoteDataSource tailored for working with OData services.
3376
+ * It automatically handles the construction of OData queries and the processing of OData responses.
3377
+ *
3378
+ * @template T - The type of data items in the data source. Defaults to any.
3379
+ * @param {RemoteDataSourceProps<T>} props - The configuration options for the OData data source.
3380
+ * @returns {RemoteDataSource<T>} An object containing all the properties and methods from useRemoteDataSource with OData-specific defaults for transport and schema configurations.
3381
+ *
3382
+ * @example
3383
+ * ```tsx
3384
+ * interface Product {
3385
+ * ProductID: number;
3386
+ * ProductName: string;
3387
+ * UnitPrice: number;
3388
+ * }
3389
+ *
3390
+ * const dataSource = useODataDataSource<Product>({
3391
+ * take: 10,
3392
+ * skip: 0,
3393
+ * transport: {
3394
+ * read: {
3395
+ * url: 'https://demos.telerik.com/kendo-ui/service-v4/odata/Products'
3396
+ * }
3397
+ * },
3398
+ * schema: {
3399
+ * model: {
3400
+ * id: 'ProductID'
3401
+ * }
3402
+ * }
3403
+ * });
3404
+ * ```
3405
+ */
3406
+ export declare const useODataDataSource: <T extends object = any>(props: RemoteDataSourceProps<T>) => RemoteDataSource<T>;
3407
+
3408
+ /**
3409
+ * A hook that extends the functionality of useDataSource by adding support for remote data operations.
3410
+ * It enables you to connect to remote endpoints and perform CRUD operations while managing the data state locally.
3411
+ *
3412
+ * @template T - The type of data items in the data source
3413
+ * @param {RemoteDataSourceProps<T>} props - The configuration options for the remote data source.
3414
+ * @returns {RemoteDataSource<T>} An object containing all the properties and methods from useDataSource plus additional methods for interacting with remote data.
3415
+ */
3416
+ export declare const useRemoteDataSource: <T extends object = any>(props: RemoteDataSourceProps<T>) => RemoteDataSource<T>;
3417
+
2750
3418
  /**
2751
3419
  * @hidden
2752
3420
  */