declare module '@ember-data/json-api/-private/serialize' {
  import type { StableRecordIdentifier } from '@warp-drive/core-types';
  import type { Cache } from '@warp-drive/core-types/cache';
  import type { Relationship } from '@warp-drive/core-types/cache/relationship';
  import type { Value } from '@warp-drive/core-types/json/raw';
  import type { ResourceObject } from '@warp-drive/core-types/spec/json-api-raw';
  type ChangedRelationshipData = {
      data: Relationship['data'];
  };
  export type JsonApiResourcePatch = {
      type: string;
      id: string | null;
      lid: string;
      attributes?: Record<string, Value>;
      relationships?: Record<string, ChangedRelationshipData>;
  };
  /**
   * Serializes the current state of a resource or array of resources for use with POST or PUT requests.
   *
   * @method serializeResources
   * @static
   * @public
   * @for @ember-data/json-api/request
   * @param {Cache} cache}
   * @param {StableRecordIdentifier} identifier
   * @return {object} An object with a `data` property containing the serialized resource patch
   */
  export function serializeResources(cache: Cache, identifiers: StableRecordIdentifier): {
      data: ResourceObject;
  };
  export function serializeResources(cache: Cache, identifiers: StableRecordIdentifier[]): {
      data: ResourceObject[];
  };
  /**
   * Serializes changes to a resource for use with PATCH requests.
   *
   * Only attributes which are changed are serialized.
   * Only relationships which are changed are serialized.
   *
   * Collection relationships serialize the collection as a whole.
   *
   * If you would like to serialize updates to a collection more granularly
   * (for instance, as operations) request the diff from the store and
   * serialize as desired:
   *
   * ```ts
   * const relationshipDiffMap = cache.changedRelationships(identifier);
   * ```
   *
   * @method serializePatch
   * @static
   * @public
   * @for @ember-data/json-api/request
   * @param {Cache} cache}
   * @param {StableRecordIdentifier} identifier
   * @return {object} An object with a `data` property containing the serialized resource patch
   */
  export function serializePatch(cache: Cache, identifier: StableRecordIdentifier): {
      data: JsonApiResourcePatch;
  };
  export {};
}
//# sourceMappingURL=serialize.d.ts.map