import type { FastifyInstance } from "fastify";
import { type Tx } from "../db/client.js";
import type { FamilyProvider } from "../auth/family-provider.js";
/**
 * Émet une paire de tokens (access JWT + refresh opaque) et enregistre le
 * hash du refresh token. `tx` optionnel : passé quand le caller est déjà
 * dans une transaction (register, rotation) pour éviter une transaction
 * imbriquée inutile.
 */
export declare function issueTokens(app: FastifyInstance, userId: string, familyId: string | null, tx?: Tx | null): {
    accessToken: string;
    refreshToken: string;
};
export declare function loadMe(userId: string, familyProvider: FamilyProvider): {
    user: {
        id: string;
        email: string | null;
        displayName: string;
        createdAt: string;
    };
    families: import("../auth/family-provider.js").FamilySummary[];
};
export declare function registerAuthRoutes(app: FastifyInstance, opts: {
    familyProvider: FamilyProvider;
}): void;
