import type { AnyState, MapEntity, PatchEntity, SliceHelper, PropId, PropIds } from './types'; export interface TableSelectors { findById: (d: MapEntity, { id }: PropId) => Entity | undefined; findByIds: (d: MapEntity, { ids }: PropIds) => Entity[]; tableAsList: (d: MapEntity) => Entity[]; selectTable: (s: S) => MapEntity; selectTableAsList: (state: S) => Entity[]; selectById: (s: S, p: PropId) => Entity | undefined; selectByIds: (s: S, p: { ids: string[]; }) => Entity[]; } export declare function tableSelectors(selectTable: (s: S) => MapEntity): TableSelectors; export declare function mustSelectEntity(defaultEntity: Entity | (() => Entity)): (selectById: (s: S, p: PropId) => Entity | undefined) => (state: S, { id }: PropId) => Entity; interface TableReducers { add: (state: MapEntity, payload: MapEntity) => MapEntity; set: (state: MapEntity, payload: MapEntity) => MapEntity; remove: (state: MapEntity, payload: string[]) => MapEntity; reset: (state: MapEntity) => MapEntity; merge: (state: MapEntity, payload: PatchEntity>) => MapEntity; patch: (state: MapEntity, payload: PatchEntity>) => MapEntity; } export declare function tableReducers(initialState?: MapEntity): TableReducers; export declare function createTableAdapter(initialState?: MapEntity): { reducers: TableReducers; getSelectors: (stateFn: (s: S) => MapEntity) => TableSelectors; }; export default function createTable({ name, extraReducers, initialState, }: SliceHelper>): { getSelectors: (stateFn: (s: S) => MapEntity) => TableSelectors; name: string; reducer: import("./types").Reducer, import("./types").Action>; actions: { add: Object extends MapEntity ? (payload?: any) => import("./types").Action : (payload: MapEntity) => import("./types").Action, string>; set: Object extends MapEntity ? (payload?: any) => import("./types").Action : (payload: MapEntity) => import("./types").Action, string>; remove: (payload: string[]) => import("./types").Action; patch: Object extends PatchEntity> ? (payload?: any) => import("./types").Action : (payload: PatchEntity>) => import("./types").Action>, string>; merge: Object extends PatchEntity> ? (payload?: any) => import("./types").Action : (payload: PatchEntity>) => import("./types").Action>, string>; reset: () => import("./types").Action; }; toString: () => string; }; export {};