import { Data } from "./Data.js"; import { ListenerRequest } from "./gen/request.js"; import { paths } from "./gen/api.js"; import { Options } from "./gen/manifest.js"; export type Class = { new (...args: any[]): T; }; export declare class Api { readonly client: { GET

>(url: P, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; PUT(url: P_1, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; POST>(url: P_2, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; DELETE>(url: P_3, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; OPTIONS(url: P_4, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; HEAD(url: P_5, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; PATCH(url: P_6, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; TRACE(url: P_7, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; }; readonly url: string; readonly token: string; readonly data: DataApi; constructor(req: ListenerRequest["api"], client?: { GET

>(url: P, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; PUT(url: P_1, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; POST>(url: P_2, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; DELETE>(url: P_3, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; OPTIONS(url: P_4, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; HEAD(url: P_5, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; PATCH(url: P_6, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; TRACE(url: P_7, ...init: import("openapi-typescript-helpers").HasRequiredKeys>> extends never ? [import("openapi-fetch").FetchOptions>?] : [import("openapi-fetch").FetchOptions>]): Promise>; }); } declare abstract class ApiPart { readonly api: Api; constructor(api: Api); headers(): { Authorization: string; }; } declare class Collection { private readonly api; private readonly name; constructor(api: AbstractDataApi, name: string); getDoc(id: string): Promise<{ [key: string]: unknown; }>; createDoc(doc: any): Promise<{ [key: string]: unknown; }>; updateDoc(doc: any): Promise<{ [key: string]: unknown; }>; deleteDoc(id: string): Promise<{ [key: string]: unknown; }>; find(query: { [key: string]: any; }, projection?: { [key: string]: any; }, options?: Options): Promise<{ [key: string]: unknown; }[]>; insertMany(documents: any[]): Promise<{ insertedIds: string[]; }>; updateMany(filter: any, update: any): Promise>; } declare class TypedCollection> { private readonly collClass; private readonly collection; constructor(api: AbstractDataApi, collClass: T); getDoc(id: string): Promise; createDoc(doc: D): Promise; updateDoc(doc: D): Promise; deleteDoc(doc: D): Promise; find(query: { [key: string]: any; }, projection?: { [key: string]: any; }, options?: Options): Promise; insertMany(documents: D[]): Promise; updateMany(filter: any, update: any): Promise; } declare abstract class AbstractDataApi extends ApiPart { private readonly collections; private readonly typedCollections; coll(name: string): Collection; coll(collClass: Class): TypedCollection>; static fromJson(dataClass: Class, data: any): T; } export declare class DataApi extends AbstractDataApi { startTransaction(): Promise; static dataCollection(data: T): string; static collectionName(dataClass: Class): string; } export declare class Transaction extends AbstractDataApi { readonly token: string; constructor(api: Api, token: string); headers(): { Authorization: string; }; commit(): Promise; abort(): Promise; } export {};