import { UserProfile, ObjectPermission, VystaClient, VystaPermissionService } from '@datavysta/vysta-client'; export interface AuthWrapper { login: (username: string, password: string) => Promise; logout: () => Promise; getSignInMethods: () => Promise; getAuthorizeUrl: (providerId: string) => Promise; exchangeToken: (token: string) => Promise; } export interface UseAuthOptions { client: VystaClient; permissionService?: VystaPermissionService; apps?: string[]; } export interface UseAuthResult { profile: UserProfile | null; permissions: Record | null; canSelectConnection: (app: string) => boolean; profileLoading: boolean; profileError: unknown; loginLoading: boolean; loginError: unknown; isAuthenticated: boolean; auth: AuthWrapper; } export declare function useAuth({ client, permissionService, apps }: UseAuthOptions): UseAuthResult;