import PocketbaseSvelte, { type RecordService, type CollectionService, type CommonOptions } from 'pocketbase-svelte'; import { type Agent } from 'supertest'; import type { Models, Collections } from 'pocketbase-svelte'; declare class CollectionsCrudService extends CollectionService { getOne(id: C, options?: CommonOptions): Promise; update(id: C, bodyParams?: { [key: string]: any; } | FormData, options?: CommonOptions): Promise; delete(id: keyof Collections, options?: CommonOptions): Promise; } declare class Client extends PocketbaseSvelte { collections: CollectionsCrudService; collection(idOrName: TId): RecordService<[OverrideType] extends [never] ? Models[TId] : OverrideType>; } type Contents = Record; declare global { namespace App { interface Locals { pb: Client; admin: Client; team: string; role: string; contents: Contents | null; meta: { appName: string; appURL: string; senderName: string; senderAddress: string; hideControls: boolean; }; } } } declare module '$env/static/private' { const POCKETBASE_URL: string; } type StripGroups = S extends `/${`(${string})`}/${infer Rest}` ? `/${StripGroups}` : S extends `/${`(${string})`}` ? '/' : S extends `${infer Head}/${`(${string})`}/${infer Tail}` ? `${Head}/${StripGroups}` : S extends `${infer Head}/${`(${string})`}` ? Head : S; type Normalize = S extends `${infer Start}[${string}]${infer Rest}` ? `${Start}${string}${Normalize}` : S; export type Match = Normalize>; export type TestContext = { request: Agent; agent: Agent & { authenticateUser: () => Promise; }; admin: App.Locals['admin']; pb: App.Locals['pb']; user: Models['users']; }; export {};