declare module 'router_js/lib/utils' { import type { QueryParams } from "route-recognizer"; import type { Promise } from "rsvp"; import type { Dict } from "router_js/lib/core"; import type Router from "router_js/lib/router"; export const slice: (start?: number, end?: number) => any[]; /** Determines if an object is Promise by checking if it is "thenable". **/ export function isPromise(p: any): p is Promise; export function merge(hash: Dict, other?: Dict): void; export type ModelsAndQueryParams = T[] | [...T[], QueryParamsContainer]; /** @private Extracts query params from the end of an array **/ export function extractQueryParams(array: ModelsAndQueryParams): [T[], QueryParams | null]; export type QueryParamsContainer = { queryParams: QueryParams; }; /** @private Coerces query param properties and array elements into strings. **/ export function coerceQueryParamsToString(queryParams: Dict): void; /** @private */ export function log(router: Router, ...args: (string | number)[]): void; export function isParam(object: any): object is string | number; export function forEach(array: T[], callback: (item: T) => boolean): void; export interface ChangeList { all: Dict; changed: Dict; removed: Dict; } export function getChangelist(oldObject: Dict, newObject: Dict): ChangeList | undefined; export function promiseLabel(label: string): string; }