import type { AdminUserDto } from "./admin-user.dto.js";
import type { ShopUserDetailDto } from "./shop-user.dto.js";
import type { ShopListItemDto } from "./shop.dto.js";
export interface AdminLoginResponse {
    accessToken: string;
    refreshToken: string;
    user: AdminUserDto;
}
export interface ShopUserLoginResponse {
    accessToken: string;
    refreshToken: string;
    shopUser: ShopUserDetailDto;
}
/**
 * Réponse du POST /auth/pos/login (email + password).
 *
 * - Si l'utilisateur n'a qu'un seul shop → `status: "authenticated"`, tokens + shopUser inclus.
 * - Si l'utilisateur a plusieurs shops → `status: "select_shop"`, sessionToken + shops.
 */
export type PosLoginResponse = {
    status: "authenticated";
    accessToken: string;
    refreshToken: string;
    shopUser: ShopUserDetailDto;
} | {
    status: "select_shop";
    sessionToken: string;
    shops: ShopListItemDto[];
};
/**
 * Réponse du GET /auth/pos/me — profil complet du ShopUser connecté
 * pour le shop indiqué dans le header X-Shop-Id.
 */
export interface PosProfileResponse {
    shopUser: ShopUserDetailDto;
    /** Tous les shops auxquels cet email est rattaché (pour le switch) */
    availableShops: ShopListItemDto[];
}
/**
 * Réponse du POST /auth/pos/switch-shop — profil du ShopUser sur le nouveau shop.
 * Pas besoin de nouveau JWT (il est shop-agnostic).
 */
export interface SwitchShopResponse {
    shopUser: ShopUserDetailDto;
}
