import { Request, Response, NextFunction, Router } from 'express';
import { FaceitVisa, FaceitUser, TokenResponse } from './index';
export interface AuthenticatedRequest extends Request {
    user?: FaceitUser;
    faceitToken?: TokenResponse;
}
export interface MiddlewareOptions {
    loginPath?: string;
    callbackPath?: string;
    sessionSecret?: string;
    onSuccess?: (req: AuthenticatedRequest, res: Response) => void;
    onError?: (req: Request, res: Response, error: string) => void;
}
export declare class FaceitVisaMiddleware {
    private visa;
    private options;
    constructor(visa: FaceitVisa, options?: MiddlewareOptions);
    /**
     * Create authentication routes
     */
    getRoutes(): Router;
    /**
     * Middleware to require authentication
     */
    requireAuth(): (req: Request, res: Response, next: NextFunction) => void;
    /**
     * Optional authentication middleware
     */
    optionalAuth(): (req: Request, res: Response, next: NextFunction) => void;
    /**
     * Logout middleware
     */
    logout(): (req: Request, res: Response) => void;
    private handleError;
}
export default FaceitVisaMiddleware;
//# sourceMappingURL=middleware.d.ts.map