import type { IndexedStorage, LoginStorage } from '@solid/community-server'; /** * A {@link LoginStorage} wrapper that keeps the CSS account protection which fits * Xpod's account model: **the last login method of an account cannot be deleted**. * * Unlike CSS `BaseLoginAccountStorage` it deliberately does NOT: * - require a login method before creating non-login rows — SP-linked cloud accounts * are created without passwords and receive pods through provision receipts; * - expire passwordless accounts — those SP custody accounts are legitimate and permanent. * * @param storage - The underlying IndexedStorage holding the actual rows. */ export declare class LoginMethodGuardStorage implements LoginStorage { private readonly logger; private readonly storage; private readonly loginTypes; private readonly accountKeys; constructor(storage: IndexedStorage); defineType(type: string, description: any, isLogin: boolean): Promise; createIndex(type: string, key: string): Promise; create(type: string, value: any): Promise; has(type: string, id: string): Promise; get(type: string, id: string): Promise; find(type: string, query: any): Promise; findIds(type: string, query: any): Promise; set(type: string, value: any): Promise; setField(type: string, id: string, key: string, value: any): Promise; delete(type: string, id: string): Promise; entries(type: string): AsyncIterableIterator; private assertNotLastLoginMethod; }