export interface QueryParamsObj { [x: string]: any; } interface buildQueryParamsArgs { context: T; offset?: number; limit?: number; filterList?: (keyof T)[]; includeList?: string[]; sorts?: string[]; pagingRootKey?: string | null; filterRootKey?: string | null; includeKey?: string; sortKey?: string; serializeFilterValue?: (key: string, value: any) => any; processQueryParams?: (params: QueryParamsObj) => QueryParamsObj; } interface getParamsObjectArgs { context: T; filterList?: (keyof T)[]; filterRootKey?: string | null; sorts?: string[]; sortKey?: string; serializeFilterValue: (key: string, value: any) => any; } /** * Default filter serialization. * If the `value` is a JS Date, return the date value in ISO string format. * Otherwise return the value as is. * * @export * @param {string} key * @param {*} value * @returns {*} */ export declare function defaultSerializeFilterValue(_key: string, value: any): any; /** * Builds a query params object to use for paginated api requests using the "context" (e.g. Controller/Component) * to get filter values, along with additional passed in configuration. Optimized for JSON-API spec APIs by default. * @param {buildQueryParamsArgs} Config * @returns {QueryParamsObj} Object with query params to send to server */ export declare function buildQueryParams({ context, offset, limit, filterList, includeList, sorts, pagingRootKey, filterRootKey, includeKey, sortKey, serializeFilterValue, processQueryParams }: buildQueryParamsArgs): QueryParamsObj; /** * Gets the parameter values from the "context" (e.g. Controller/Component) * @param {getParamsObjectArgs} Config * @returns {QueryParamsObj} Object with query params to send to server */ export declare function getParamsObject({ context, filterList, filterRootKey, sorts, sortKey, serializeFilterValue }: getParamsObjectArgs): QueryParamsObj; /** * Remove empty(using [isEmpty](https://api.emberjs.com/ember/release/functions/@ember%2Futils/isEmpty))query params from the query params object thats built from `buildQueryParams` * @param {any} queryParams The query params object * @returns {QueryParamsObj} object with empty query params removed */ export declare function removeEmptyQueryParams(queryParams: QueryParamsObj): QueryParamsObj; export {};