import type { Principal, SignInCredentials } from '@platform-modules/auth'

/** Minimal sign-up payload; host routes may extend with additional fields. */
export type SignUpInput = { email: string; password: string }

/**
 * Injected data seam for browser-side auth.
 * The consumer wires each method to its authenticated API route — sessions stay server-managed.
 */
export interface AuthClient {
  getCurrentUser(): Promise<Principal | null>
  signIn(creds: SignInCredentials): Promise<Principal>
  signUp(input: SignUpInput): Promise<Principal>
  signOut(): Promise<void>
  requestPasswordReset(email: string): Promise<void>
  resetPassword(token: string, newPassword: string): Promise<void>
}
