/**
 * Auth Route Handler
 * Express routes for the auth module
 */
import type { Express, Request, Response, NextFunction } from "../types/index.js";
import type { BaasixAuth } from "./core.js";
import type { AuthOptions } from "./types.js";
/**
 * Helper function to set token in response based on auth mode
 */
export declare const setTokenInResponse: (res: Response, token: string, authMode: string, env?: {
    get: (key: string) => string | undefined;
}) => {
    token?: string;
    message?: string;
    authMode: string;
};
export interface AuthRouteOptions extends AuthOptions {
    /**
     * Base path for auth routes
     * @default "/auth"
     */
    basePath?: string;
    /**
     * Mail service for sending emails
     */
    mailService?: {
        sendMail: (options: {
            to: string;
            subject: string;
            templateName: string;
            context: Record<string, any>;
        }) => Promise<void>;
    };
    /**
     * Settings service for getting app URLs
     */
    settingsService?: {
        getAllSettingsUrls: () => Promise<string[]>;
        getTenantSettings?: (tenantId: string) => Promise<any>;
        getGlobalSettings?: () => any;
    };
    /**
     * Env helper
     */
    env?: {
        get: (key: string) => string | undefined;
    };
}
/**
 * Create auth routes for Express
 */
export declare function createAuthRoutes(app: Express, options: AuthRouteOptions): BaasixAuth;
/**
 * Create auth middleware for Express
 */
export declare function createAuthMiddleware(auth: BaasixAuth): (req: Request, res: Response, next: NextFunction) => Promise<void>;
declare const _default: {
    createAuthRoutes: typeof createAuthRoutes;
    createAuthMiddleware: typeof createAuthMiddleware;
};
export default _default;
//# sourceMappingURL=routes.d.ts.map