declare module '@ember-data/model/-private/promise-belongs-to' {
  import type PromiseProxyMixin from '@ember/object/promise-proxy-mixin';
  import type ObjectProxy from '@ember/object/proxy';
  import type Store from '@ember-data/store';
  import type { OpaqueRecordInstance, TypeFromInstanceOrString } from '@warp-drive/core-types/record';
  import type { LegacySupport } from '@ember-data/model/-private/legacy-relationships-support';
  export interface BelongsToProxyMeta<T = unknown> {
      key: string;
      store: Store;
      legacySupport: LegacySupport;
      modelName: TypeFromInstanceOrString<T>;
  }
  export interface BelongsToProxyCreateArgs<T = unknown> {
      promise: Promise<T | null>;
      content?: T | null;
      _belongsToState: BelongsToProxyMeta<T>;
  }
  export const LegacyPromiseProxy: unique symbol;
  interface PromiseObjectType<T> extends PromiseProxyMixin<T | null>, ObjectProxy<T> {
      new <PT>(...args: unknown[]): PromiseObjectType<PT>;
  }
  class PromiseObjectType<T> {
  }
  const Extended: PromiseObjectType<OpaqueRecordInstance>;
  /**
    A PromiseBelongsTo is a PromiseObject that also proxies certain method calls
    to the underlying belongsTo model.
    Right now we proxy:
      * `reload()`
    @class PromiseBelongsTo
    @private
  */
  class PromiseBelongsTo<T = unknown> extends Extended<T> {
      _belongsToState: BelongsToProxyMeta<T>;
      get id(): string | null;
      get meta(): void;
      reload(options: Record<string, unknown>): Promise<this>;
      [LegacyPromiseProxy]: true;
  }
  export { PromiseBelongsTo };
}
//# sourceMappingURL=promise-belongs-to.d.ts.map