export type IDefaultParams = Record; export type IDefaultHeaders = Record; export interface IDefaultOptions { endpoint: string; params?: IParams; headers?: IHeaders; shouldIncludeHeadersInResponse?: true; } export interface IIndexOptions extends IDefaultOptions { body?: IBody; } export interface IShowOptions extends IDefaultOptions { id: string; } export interface IStoreOptions extends IDefaultOptions { body: IBody; } export interface IUpdateOptions extends IDefaultOptions { id: string; body: IBody; } export interface IReplaceOptions extends IDefaultOptions { id: string; body: IBody; } export interface IDestroyOptions extends IDefaultOptions { id: string; } export interface IBlingRepository { index: (options: IIndexOptions) => Promise; show: (options: IShowOptions) => Promise; store: (options: IStoreOptions) => Promise; update: (options: IUpdateOptions) => Promise; replace: (options: IReplaceOptions) => Promise; destroy: (options: IDestroyOptions) => Promise; }