import type { FastifyInstance } from 'fastify';
import type { UserRole } from '@org/types';
declare module '@fastify/jwt' {
    interface FastifyJWT {
        payload: {
            sub: string;
            tenantId: string | null;
            role: UserRole;
            type: 'access' | 'refresh';
        };
        user: {
            sub: string;
            tenantId: string | null;
            role: UserRole;
            type: 'access' | 'refresh';
        };
    }
}
declare const _default: (fastify: FastifyInstance) => Promise<void>;
export default _default;
declare module 'fastify' {
    interface FastifyInstance {
        authenticate: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
        authorize: (roles: UserRole[]) => (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
    }
}
//# sourceMappingURL=auth.d.ts.map