import { QdTableData, QdTableRecentSecondaryAction, QdTableRowIdentifier } from './table-data.interface';
import { QdTableRequestState } from './table-data-resolver';
import { QdSortDirection } from './sort-direction.enum';
import { QdTableConnectorState } from './connectors-state.enum';
export interface QdTableStore<T extends string> {
    qdUiTable: QdTableStoreData<T>;
}
export interface QdTableStoreData<T extends string> {
    [tableId: string]: QdTableState<T>;
}
export interface QdTableState<T extends string> {
    data: QdTableData<T>;
    selectedRows?: QdTableRowIdentifier[];
    recentSecondaryAction?: QdTableRecentSecondaryAction<T>;
    hasResolver?: boolean;
    hasPagination?: boolean;
    pageIndex?: number;
    pageSize?: number;
    totalCount?: number;
    sort?: QdTableStateSort<T>[];
    requestState?: QdTableRequestState;
    connectors?: QdTableConnector[];
    connectorCriteria?: QdTableConnectorCriteria;
}
export interface QdTablePaginatorCurrentPage {
    start: number;
    end: number;
    totalCount: number;
}
export interface QdTableStateSort<T extends string> {
    column: T;
    direction: QdSortDirection;
}
export interface QdTableConnector {
    connectorName: string;
    connectorState: QdTableConnectorState;
}
export interface QdTableConnectorCriteria {
    [criteria: string]: unknown;
}
export interface QdTableDataResolutionCriteria<T extends string> {
    hasConnectors: boolean;
    connectorsState?: QdTableConnectorState;
    tableParams: QdTableParams<T>;
    connectorParams?: QdConnectorParams;
}
export interface QdTableParams<T extends string> {
    page: number;
    size: number;
    sort?: QdTableStateSort<T>[];
}
export interface QdConnectorParams {
    [param: string]: unknown;
}
//# sourceMappingURL=table-store.interface.d.ts.map