import { Schema, StringOrNumberKeys } from '../models/Schema';
import BasicIdRestModel from '../models/restmodels/basic/BasicIdRestModel';
import { UrlCallbackParam } from '../models/restmodels';
import { ReducerType, RestApiReducerType } from '../models/ReducerStorage';
export default class BasicSearchReducer<S extends Schema<any>, IdKey extends StringOrNumberKeys<S['RealType']> & StringOrNumberKeys<S['PopulatedType']> & string, MetaData> {
    readonly restModel: BasicIdRestModel<S, IdKey>;
    private url;
    constructor(restModel: BasicIdRestModel<S, IdKey>, url: UrlCallbackParam<{}>);
    getReducer(state: ReducerType): RestApiReducerType<S['RealType'], MetaData, IdKey>;
    private getUrl;
    get(state: ReducerType, queryString?: string): NonNullable<S["RealType"]>[];
    get getById(): (state: ReducerType, id: S["RealType"][IdKey]) => S["RealType"] | null;
    getPopulated(state: ReducerType, queryString?: string): NonNullable<S["PopulatedType"]>[];
    isPopulated(state: ReducerType, queryString?: string): boolean;
    isInitialized(state: ReducerType, queryString?: string): boolean;
    getError(state: ReducerType, queryString?: string): import("../..").HttpError | null;
    isFetching(state: ReducerType, queryString?: string): boolean;
    isInvalidated(state: ReducerType, queryString?: string): boolean;
    getMetadata(state: ReducerType, queryString?: string): MetaData | null;
}
