import * as jest_mock from 'jest-mock';
import { IdType } from 'imng-nrsrx-client-utils';
import { IPrimeODataTableFacade, PrimeTableState } from 'imng-prime-table-odata';
import { Observable, Subject } from 'rxjs';
import { LazyLoadEvent } from 'primeng/api';

declare class ODataTableMockFacade implements IPrimeODataTableFacade<{
    id?: IdType | null;
}> {
    activeEffectCount$: Observable<number>;
    tableState$: Observable<PrimeTableState>;
    tableData$: Observable<{
        id?: IdType | null;
    }[]>;
    totalRecordCount$: Observable<number>;
    loadEntities: jest_mock.Mock<jest_mock.UnknownFunction>;
    reloadEntities: jest_mock.Mock<jest_mock.UnknownFunction>;
}

declare function createODataTableMockFacade(mockFacade?: ODataTableMockFacade | any): ODataTableMockFacade;

declare class MockTable {
    onLazyLoad: Subject<LazyLoadEvent>;
    onFilter: Subject<unknown>;
}

export { MockTable, ODataTableMockFacade, createODataTableMockFacade };
