import PocketBase from 'pocketbase';
import type { AuthResponse, AuthRecord, SuperuserRecord, Collection, ListResult, BaseRecord, QueryOptions, RecordCreateData, RecordUpdateData, AuthOptions, HealthCheck, LogRequest, BackupInfo } from './types/pocketbase.js';
export declare class PocketBaseError extends Error {
status?: number | undefined;
data?: unknown | undefined;
constructor(message: string, status?: number | undefined, data?: unknown | undefined);
}
export declare class PocketBaseService {
private userClient;
private adminClient;
private isAdminAuthenticated;
constructor();
private setupAuthListeners;
private handlePocketBaseError;
authenticateAdmin(): Promise<AuthResponse<SuperuserRecord>>;
ensureAdminAuth(): Promise<void>;
loginUser(email: string, password: string, options?: AuthOptions): Promise<AuthResponse<AuthRecord>>;
registerUser(email: string, password: string, passwordConfirm: string, additionalData?: Record<string, unknown>): Promise<AuthResponse<AuthRecord>>;
refreshUserAuth(options?: AuthOptions): Promise<AuthResponse<AuthRecord>>;
logoutUser(): void;
getCurrentUser(): AuthRecord | null;
isUserAuthenticated(): boolean;
requestPasswordReset(email: string): Promise<boolean>;
confirmPasswordReset(token: string, password: string, passwordConfirm: string): Promise<boolean>;
listCollections(options?: QueryOptions): Promise<ListResult<Collection>>;
getCollection(idOrName: string): Promise<Collection>;
createCollection(data: Record<string, unknown>): Promise<Collection>;
updateCollection(idOrName: string, data: Record<string, unknown>): Promise<Collection>;
deleteCollection(idOrName: string): Promise<boolean>;
listRecords<T = BaseRecord>(collection: string, options?: QueryOptions): Promise<ListResult<T>>;
getRecord<T = BaseRecord>(collection: string, id: string, options?: {
expand?: string;
fields?: string;
}): Promise<T>;
createRecord<T = BaseRecord>(collection: string, data: RecordCreateData, options?: {
expand?: string;
fields?: string;
}): Promise<T>;
updateRecord<T = BaseRecord>(collection: string, id: string, data: RecordUpdateData, options?: {
expand?: string;
fields?: string;
}): Promise<T>;
deleteRecord(collection: string, id: string): Promise<boolean>;
getFileUrl(record: BaseRecord, filename: string, options?: {
thumb?: string;
}): string;
getFileToken(): Promise<string>;
healthCheck(): Promise<HealthCheck>;
getLogs(options?: QueryOptions): Promise<ListResult<LogRequest>>;
createBackup(name?: string): Promise<void>;
listBackups(): Promise<BackupInfo[]>;
impersonateUser(recordId: string, duration?: number): Promise<PocketBase>;
getUserClient(): PocketBase;
getAdminClient(): PocketBase;
}
export declare const pocketBaseService: PocketBaseService;
//# sourceMappingURL=pocketbase-service.d.ts.map