import type { NextRequest } from 'next/server';
import { NextResponse } from 'next/server';
import { SessionData, SessionOptions } from '@wristband/typescript-session';
import { ConfigResolver } from '../../config-resolver';
import { CallbackResult, LoginConfig, LogoutConfig, NextJsCookieStore, ServerActionAuthResult } from '../../types';
import { WristbandService } from '../../wristband-service';
export declare class AppRouterAuthHandler {
    private configResolver;
    private wristbandService;
    constructor(configResolver: ConfigResolver, wristbandService: WristbandService);
    login(request: NextRequest, loginConfig?: LoginConfig): Promise<NextResponse>;
    callback(request: NextRequest): Promise<CallbackResult>;
    logout(request: NextRequest, logoutConfig?: LogoutConfig): Promise<NextResponse>;
    createCallbackResponse(request: NextRequest, redirectUrl: string): Promise<NextResponse>;
    /**
     * Validates authentication for Server Actions by checking session validity and refreshing tokens if needed.
     *
     * This method:
     * - Retrieves the session from cookies
     * - Checks if the user is authenticated
     * - Automatically refreshes expired access tokens
     * - Saves updated tokens back to cookies
     *
     * Note: CSRF validation is not performed as Next.js Server Actions have built-in
     * CSRF protection via Origin/Host header comparison.
     *
     * @template T - Session data type extending SessionData
     * @param cookieStore - Next.js cookie store from await cookies()
     * @param sessionOptions - Session configuration options
     * @returns Promise resolving to authentication result with session data or failure reason
     */
    createServerActionAuth<T extends SessionData = SessionData>(cookieStore: NextJsCookieStore, sessionOptions: SessionOptions): Promise<ServerActionAuthResult<T>>;
}
