import { AgentSecret, CryptoProvider, LocalNode, Peer, SessionID, StorageAPI } from "cojson"; import { AuthSecretStorage } from "../auth/AuthSecretStorage.js"; import { type Account, type AccountClass } from "../coValues/account.js"; import { CoValueFromRaw, type CoreAccountSchema, type ID, type InstanceOfSchema, type SyncWhen } from "../internal.js"; import { AuthCredentials, NewAccountProps } from "../types.js"; import { AnonymousJazzAgent } from "./anonymousJazzAgent.js"; export type Credentials = { accountID: ID; secret: AgentSecret; }; export interface SessionProvider { acquireSession: (accountID: ID, crypto: CryptoProvider) => Promise<{ sessionID: SessionID; sessionDone: () => void; }>; persistSession: (accountID: ID, sessionID: SessionID) => Promise<{ sessionDone: () => void; }>; } export declare class MockSessionProvider implements SessionProvider { acquireSession(accountID: ID, crypto: CryptoProvider): Promise<{ sessionID: SessionID; sessionDone: () => void; }>; persistSession(_accountID: ID, _sessionID: SessionID): Promise<{ sessionDone: () => void; }>; } export type AuthResult = { type: "existing"; username?: string; credentials: Credentials; saveCredentials?: (credentials: Credentials) => Promise; onSuccess: () => void; onError: (error: string | Error) => void; logOut: () => Promise; } | { type: "new"; creationProps: { name: string; anonymous?: boolean; other?: Record; }; initialSecret?: AgentSecret; saveCredentials: (credentials: Credentials) => Promise; onSuccess: () => void; onError: (error: string | Error) => void; logOut: () => Promise; }; export type JazzContextWithAccount = { node: LocalNode; account: Acc; done: () => void; logOut: () => Promise; }; export type JazzContextWithAgent = { agent: AnonymousJazzAgent; done: () => void; logOut: () => Promise; }; export type JazzContext = JazzContextWithAccount | JazzContextWithAgent; export declare function createJazzContextFromExistingCredentials & CoValueFromRaw) | CoreAccountSchema>({ credentials, peers, syncWhen, crypto, storage, AccountSchema: PropsAccountSchema, sessionProvider, onLogOut, asActiveAccount, }: { credentials: Credentials; peers: Peer[]; syncWhen?: SyncWhen; crypto: CryptoProvider; AccountSchema?: S; sessionProvider: SessionProvider; onLogOut?: () => void; storage?: StorageAPI; asActiveAccount: boolean; }): Promise>>; export declare function createJazzContextForNewAccount & CoValueFromRaw) | CoreAccountSchema>({ creationProps, initialAgentSecret, peers, syncWhen, crypto, AccountSchema: PropsAccountSchema, onLogOut, storage, sessionProvider, }: { creationProps: { name: string; }; initialAgentSecret?: AgentSecret; peers: Peer[]; syncWhen?: SyncWhen; crypto: CryptoProvider; AccountSchema?: S; onLogOut?: () => Promise; storage?: StorageAPI; sessionProvider: SessionProvider; }): Promise>>; export declare function createJazzContext & CoValueFromRaw) | CoreAccountSchema>(options: { credentials?: AuthCredentials; newAccountProps?: NewAccountProps; peers: Peer[]; syncWhen?: SyncWhen; crypto: CryptoProvider; defaultProfileName?: string; AccountSchema?: S; sessionProvider: SessionProvider; authSecretStorage: AuthSecretStorage; storage?: StorageAPI; }): Promise<{ authSecretStorage: AuthSecretStorage; node: LocalNode; account: InstanceOfSchema; done: () => void; logOut: () => Promise; }>; export declare function createAnonymousJazzContext({ peers, syncWhen, crypto, storage, }: { peers: Peer[]; syncWhen?: SyncWhen; crypto: CryptoProvider; storage?: StorageAPI; }): JazzContextWithAgent; //# sourceMappingURL=createContext.d.ts.map