import { type mongodb, type ModuleInput } from '@unchainedshop/mongodb'; import { type WarehousingProvider, type WarehousingProviderType } from '../db/WarehousingProvidersCollection.ts'; import { type TokenSurrogate } from '../db/TokenSurrogateCollection.ts'; interface TokenQuery { queryString?: string; userId?: string; walletAddressExists?: boolean; } export interface WarehousingProviderQuery { warehousingProviderIds?: string[]; type?: WarehousingProviderType; includeDeleted?: boolean; queryString?: string; } export declare const buildFindSelector: ({ includeDeleted, queryString, warehousingProviderIds, type, }?: WarehousingProviderQuery) => mongodb.Filter; export declare const buildTokenFindSelector: ({ queryString, walletAddressExists, ...rest }: TokenQuery) => mongodb.Filter; export declare const configureWarehousingModule: ({ db }: ModuleInput>) => Promise<{ count: (query?: WarehousingProviderQuery) => Promise; createTokens: (tokens: TokenSurrogate[]) => Promise; findProvider: ({ warehousingProviderId }: { warehousingProviderId: string; }, options?: mongodb.FindOptions) => Promise; findToken: ({ tokenId }: { tokenId: string; }, options?: mongodb.FindOptions) => Promise; findTokens: (selector: any, options?: mongodb.FindOptions) => Promise; tokensCount: (selector?: any) => Promise; findTokensForUser: (params: { userId: string; } | { walletAddresses: string[]; }, options?: mongodb.FindOptions) => Promise; findProviders: (query?: WarehousingProviderQuery, options?: mongodb.FindOptions) => Promise; allProviders: import("@unchainedshop/utils/lib/memoize-with-ttl.js").MemoizedWithTTL<[], mongodb.WithId[]>; providerExists: ({ warehousingProviderId, }: { warehousingProviderId: string; }) => Promise; updateTokenOwnership: (params: { tokenId: string; userId: string; } | { tokenId: string; walletAddress: string; }) => Promise | null>; invalidateToken: (tokenId: string) => Promise | null>; buildAccessKeyFromToken: (token: TokenSurrogate) => Promise; create: (doc: Omit & Pick, "_id">) => Promise; update: (warehousingProviderId: string, doc: Partial) => Promise | null>; delete: (providerId: string) => Promise | null>; }>; export type WarehousingModule = Awaited>; export {};