declare module '@ember-data/json-api/-private/builders/query' {
  import type { QueryParamsSource } from '@warp-drive/core-types/params';
  import type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core-types/record';
  import type { ConstrainedRequestOptions, PostQueryRequestOptions, QueryRequestOptions } from '@warp-drive/core-types/request';
  import type { CollectionResourceDataDocument } from '@warp-drive/core-types/spec/document';
  /**
   * Builds request options to query for resources, usually by a primary
   * type, configured for the url and header expectations of most JSON:API APIs.
   *
   * The key difference between this and `postQuery` is that this method will send the query
   * as query params in the url of a "GET" request instead of as the JSON body of a "POST"
   * request.
   *
   * **Basic Usage**
   *
   * ```ts
   * import { query } from '@ember-data/json-api/request';
   *
   * const data = await store.request(query('person'));
   * ```
   *
   * **With Query Params**
   *
   * ```ts
   * import { query } from '@ember-data/json-api/request';
   *
   * const options = query('person', { include: ['pets', 'friends'] });
   * const data = await store.request(options);
   * ```
   *
   * **Supplying Options to Modify the Request Behavior**
   *
   * The following options are supported:
   *
   * - `host` - The host to use for the request, defaults to the `host` configured with `setBuildURLConfig`.
   * - `namespace` - The namespace to use for the request, defaults to the `namespace` configured with `setBuildURLConfig`.
   * - `resourcePath` - The resource path to use for the request, defaults to pluralizing the supplied type
   * - `reload` - Whether to forcibly reload the request if it is already in the store, not supplying this
   *      option will delegate to the store's CachePolicy, defaulting to `false` if none is configured.
   * - `backgroundReload` - Whether to reload the request if it is already in the store, but to also resolve the
   *      promise with the cached value, not supplying this option will delegate to the store's CachePolicy,
   *      defaulting to `false` if none is configured.
   * - `urlParamsSetting` - an object containing options for how to serialize the query params (see `buildQueryParams`)
   *
   * ```ts
   * import { query } from '@ember-data/json-api/request';
   *
   * const options = query('person', { include: ['pets', 'friends'] }, { reload: true });
   * const data = await store.request(options);
   * ```
   *
   * @method query
   * @public
   * @static
   * @for @ember-data/json-api/request
   * @param identifier
   * @param query
   * @param options
   */
  export function query<T extends TypedRecordInstance>(type: TypeFromInstance<T>, query?: QueryParamsSource<T>, options?: ConstrainedRequestOptions): QueryRequestOptions<T, CollectionResourceDataDocument<T>>;
  export function query(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): QueryRequestOptions;
  /**
   * Builds request options to query for resources, usually by a primary
   * type, configured for the url and header expectations of most JSON:API APIs.
   *
   * The key difference between this and `query` is that this method will send the query
   * as the JSON body of a "POST" request instead of as query params in the url of a "GET"
   * request.
   *
   * A CacheKey is generated from the url and query params, and used to cache the response
   * in the store.
   *
   * ```ts
   * import { postQuery } from '@ember-data/json-api/request';
   *
   * const options = postQuery('person', { include: ['pets', 'friends'] });
   * const data = await store.request(options);
   * ```
   *
   * **Supplying Options to Modify the Request Behavior**
   *
   * The following options are supported:
   *
   * - `host` - The host to use for the request, defaults to the `host` configured with `setBuildURLConfig`.
   * - `namespace` - The namespace to use for the request, defaults to the `namespace` configured with `setBuildURLConfig`.
   * - `resourcePath` - The resource path to use for the request, defaults to pluralizing the supplied type
   * - `reload` - Whether to forcibly reload the request if it is already in the store, not supplying this
   *      option will delegate to the store's CachePolicy, defaulting to `false` if none is configured.
   * - `backgroundReload` - Whether to reload the request if it is already in the store, but to also resolve the
   *      promise with the cached value, not supplying this option will delegate to the store's CachePolicy,
   *      defaulting to `false` if none is configured.
   * - `urlParamsSetting` - an object containing options for how to serialize the query params (see `buildQueryParams`)
   *
   * ```ts
   * import { postQuery } from '@ember-data/json-api/request';
   *
   * const options = postQuery('person', { include: ['pets', 'friends'] }, { reload: true });
   * const data = await store.request(options);
   * ```
   *
   * @method postQuery
   * @public
   * @static
   * @for @ember-data/json-api/request
   * @param identifier
   * @param query
   * @param options
   */
  export function postQuery<T>(type: TypeFromInstance<T>, query?: QueryParamsSource, options?: ConstrainedRequestOptions): PostQueryRequestOptions<T, CollectionResourceDataDocument<T>>;
  export function postQuery(type: string, query?: QueryParamsSource, options?: ConstrainedRequestOptions): PostQueryRequestOptions;
}
//# sourceMappingURL=query.d.ts.map