import { ApiResponse, Item, ItemControllerFindData, ItemCount, ItemDetail, ListControllerFindData, ListDetail, MarkAsRead, NotificationsControllerFindData, Order, OrderDetail, OrdersControllerFindData, PaginatedApiResponse, SmartListsControllerFindItemsData, SwishClientConfig } from "@swishapp/api-client/2026-04"; import { EventBus } from "../events/event-bus"; import { StorefrontContext } from "../options/types"; export interface SwishApiConfig extends SwishClientConfig { requestInterceptor?: (request: Request) => Promise | Request; responseInterceptor?: (response: Response, request: Request) => Promise | void; } export declare class SwishApi { private readonly cache; private readonly apiClient; private readonly config; private readonly itemsLoader; private readonly auth; private readonly storefrontContext; constructor(config: SwishApiConfig, context: StorefrontContext, eventBus: EventBus, cacheKeyPrefix: string, tokenUrl: string); private fetchFunction; private requestInterceptor; private responseInterceptor; setAuthToken(token: string): void; initAuth(): Promise; private withFallback; private withSignedInCustomerFallback; get items(): { count: () => Promise>; list: (query?: ItemControllerFindData["query"], options?: { batch?: boolean; shared?: boolean; }) => Promise>; findById: (itemId: string) => Promise>; create: (items: import("@swishapp/api-client/2026-04").CreateItem) => Promise>; delete: (itemIds: import("@swishapp/api-client/2026-04").DeleteItems["itemIds"]) => Promise>; updateById: (itemId: string, body: import("@swishapp/api-client/2026-04").UpdateItem) => Promise>; deleteById: (itemId: string) => Promise>; setListsById: (itemId: string, listIds: import("@swishapp/api-client/2026-04").SetItemLists["listIds"]) => Promise>; }; get lists(): { list: (query?: ListControllerFindData["query"]) => Promise>; findById: (listId: string, options?: { shared?: boolean; }) => Promise>; create: (list: import("@swishapp/api-client/2026-04").CreateList) => Promise>; updateById: (listId: string, body: import("@swishapp/api-client/2026-04").UpdateList) => Promise>; deleteById: (listId: string) => Promise>; orderItems: (listId: string, itemIds: import("@swishapp/api-client/2026-04").SetListItemsOrder["itemIds"]) => Promise>; addItemsToList: (listId: string, itemIds: import("@swishapp/api-client/2026-04").AddItemsToList["itemIds"]) => Promise>; removeItemFromList: (listId: string, itemId: string) => Promise>; }; get orders(): { list: (query?: OrdersControllerFindData["query"]) => Promise>; findById: (orderId: string | number) => Promise>; }; get notifications(): { list: (query?: NotificationsControllerFindData["query"]) => Promise>; getUnreadCount: () => Promise>; markAsRead: (notificationIds: MarkAsRead["notificationIds"]) => Promise>; markAllAsRead: () => Promise>; deleteById: (id: string) => Promise>; }; get smartLists(): { list: () => Promise>; findById: (smartListId: string) => Promise>; findItems: (smartListId: string, query?: SmartListsControllerFindItemsData["query"]) => Promise>; }; get profiles(): { createToken: (body?: import("@swishapp/api-client/2026-04").CreateProfileToken) => Promise>; identify: (body: import("@swishapp/api-client/2026-04").IdentifyProfile) => Promise>; getProfile: () => Promise>; updateProfile: (body: import("@swishapp/api-client/2026-04").UpdateProfile) => Promise>; }; clearCache(): Promise; }