import { type SdkResponse } from './http-transport.js'; import type { AuthSvc, MemoriesSvc, ConversationsSvc, ProfilesSvc, GroupsSvc, DmsSvc, SearchSvc, NotificationsSvc } from './svc.js'; import type { OAuthClient } from './oauth.js'; import type { components } from './api-types.generated.js'; type Schemas = components['schemas']; /** * AppClient — compound workflows over SvcClient resources. * Provides convenient multi-step operations for common use cases. */ export declare class AppClient { private svc; private oauth?; constructor(svc: { auth: AuthSvc; memories: MemoriesSvc; conversations: ConversationsSvc; profiles: ProfilesSvc; groups: GroupsSvc; dms: DmsSvc; search: SearchSvc; notifications: NotificationsSvc; }, oauth?: OAuthClient | undefined); /** * Login with Firebase ID token and fetch session in one call */ loginAndGetSession(idToken: string, captchaToken?: string): Promise | SdkResponse<{ authenticated: boolean; user?: components["schemas"]["AuthUser"]; }>>; /** * OAuth: generate PKCE params, exchange code, return authenticated session */ oauthExchangeAndGetSession(code: string, redirectUri: string, codeVerifier?: string): Promise>; /** * Search memories and fetch full details for top results */ searchAndFetchMemories(query: string, limit?: number): Promise>; /** * Create a group and add initial members */ createGroupAndInvite(name: string, description: string | undefined, memberUserIds: string[]): Promise | { data: { group: { id: string; name: string; description?: string | null; photo_url?: string | null; owner_id: string; member_count?: number; created_at?: string; }; addedMembers: number; failedMembers: number; }; error: null; status: number; }>; /** * Get a user's full profile with memory count */ getFullProfile(userId: string): Promise | { data: { memoriesCount: number; uid: string; username?: string | null; displayName?: string | null; photoURL?: string | null; bio?: string | null; visibility?: "public" | "friends" | "private"; }; error: null; status: number; }>; /** * Start a DM: find existing or create new */ startDm(participantId: string): Promise>; /** * Clear all notifications */ clearAllNotifications(): Promise>; } export {}; //# sourceMappingURL=app.d.ts.map