import { PagerSettings } from '@progress/kendo-angular-grid';
import { IKendoODataGridFacade } from 'imng-kendo-grid-odata';
import { ODataState, ODataResult } from 'imng-kendo-odata';
import { Observable } from 'rxjs';

declare class ODataGridMockFacade implements IKendoODataGridFacade<{
    id: string;
}> {
    loading$: Observable<boolean>;
    gridODataState$: Observable<ODataState>;
    gridData$: Observable<ODataResult<{
        id: string;
    }>>;
    gridPagerSettings$: Observable<false | PagerSettings>;
    loadEntities: jest.Mock<any, any, any>;
    reloadEntities: jest.Mock<any, any, any>;
}

declare function createODataGridMockFacade(mockFacade?: ODataGridMockFacade | any): ODataGridMockFacade;

declare function testGridODataState<TFacade extends IKendoODataGridFacade<unknown>>(done: jest.DoneCallback, facade: TFacade): Promise<void>;
declare function testGridPagerSettings<TFacade extends IKendoODataGridFacade<unknown>>(facade: TFacade): Promise<void>;

export { ODataGridMockFacade, createODataGridMockFacade, testGridODataState, testGridPagerSettings };
